[PHP] 利用 HTML 產生具名陣列索引

上次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 表單更新完了,是不是很方便呢? ^^

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar