上次PHP 多重選項的設計技巧 講到用 HTML 產生陣列的方式來設計前端的多重選項。
這次再進階一點,除了在前端的 HTML 就可以把使用者輸入的資料分組,交由 PHP 轉換成陣列外,還能自訂陣列索引名稱。
HTML 範例如下:
A-Key <input name="A[name]"> A-Value <input name="A[description]"> <Br> B-Key <input name="B[name]"> B-Value <input name="B[description]">
注意的是 input 標籤屬性 name 的地方,等使用者輸入值之後傳給PHP,PHP 就可以把 A、B 當成二個陣列來處理,而且[]內的定義的就是陣列的索引名稱喔! 可以自行 print_r($_POST[“A”]); 或 print_r($_POST[“B”]); 來看看。
這樣的用法有什麼好處呢? 以資料庫的處理為例,像 A[key] 就是可以當成 A 表單的欄位 key,所以以範例 HTML 代表的定義就是 A.name、A.description、B.name、B.description。
假設要藉由自訂的 dao 物件來更新 A 表單內的 key 跟 value 欄位,只要這樣做就可以了。
foreach ($_POST["A"] as $key=>$value) { $dao->setValue($key, $value); } $dao->update();
完全不用輸入表單的欄位名稱,跑個迴圈就可以把 A 表單更新完了,是不是很方便呢? ^^