Wednesday, February 3, 2010

[PHP] 取得表單中被使用者勾選的checkbox選項value值

我們在設計表單時,如果要讓使用者進行複選時,通常會利用checkbox這個標籤,例如:
<input type="checkbox" name="select_item" value="aaa" />aaa<br />
<input type="checkbox" name="select_item" value="bbb" />bbb<br />
<input type="checkbox" name="select_item" value="ccc" />ccc<br />
使用者選取送出後,我們要如何取得使用者選擇哪些選項呢?通常第一個想到的方式為:
$select_item=$_POST["select_item"];
但是,如果使用者勾選了兩種以上的選項,則$select_item只會有最後一個選項的value值,這時候我們可以利用陣列的小技巧來取得所有勾選選項value值...

表單頁:
<input type="checkbox" name="select_item[]" value="aaa" />aaa<br />
<input type="checkbox" name="select_item[]" value="bbb" />bbb<br />
<input type="checkbox" name="select_item[]" value="ccc" />ccc<br />

接受頁:
$select_item=$_POST["select_item"];
//此時$select_item會變成一個陣列,並依序存放使用者勾選選項的value值

假設使用者勾了aaa跟ccc,則代表$select_item是具有兩個元素的陣列,$select_item[0]等於aaa,$select_item[1]則等於ccc。


備註:

1、checkbox 的 name 要加上中括號,例如: select_item[] 。
2、接受頁的$_POST["變數名稱"]則不加中括號,例如 $_POST["select_item"] ,因為如果用 print_r($_POST) 來觀察就知道,$_POST["select_item"] 是一個陣列。
3、也可以加上鍵值(key)或設定成多維陣列,例如:<input type="checkbox" name="select_item[a][]" value="aaa" />

No comments:

Post a Comment