2013-02-18 40 views
4

我有幾個複選框(我不知道它們的數量),從窗體中的循環創建。如何使用同名的多個表單輸入?

<form> 
<input type="checkbox" name="id" value="id"> 
<input type="checkbox" name="id" value="id"> 
...//create in a loop 
<input type="checkbox" name="id" value="id"> 
</form> 

我的問題是如何讀取它們,如果我使用<?php $_REQUEST['id']; ?>,它只讀取最後一個複選框。

+0

有什麼用?他們都獲得了相同的價值。無論如何,你可以使用一個名稱數組。 – Shikiryu 2013-02-18 14:55:54

回答

13

使用輸入數組:

<input type="checkbox" name="id[]" value="id_a"> 
<input type="checkbox" name="id[]" value="id_b"> 
<input type="checkbox" name="id[]" value="id_c"> 
<!--       ^^ this makes it an array --> 

$_REQUEST['id']可被訪問:

foreach($_REQUEST['id'] as $id) 
{ 
    echo $id; 
} 

輸出

ID_A
ID_B
id_c

注意:這個適用於$_POST$_GET(不僅僅是$_REQUEST)。一般來說,儘管$_REQUEST應儘可能避免。

+0

謝謝@MrCode – Ehsan 2013-02-18 14:45:59

+0

哇我永遠不知道你可以做到這一點!此方法與其他服務器端語言一起使用嗎?它是W3標準嗎? – Stasel 2013-02-18 15:23:10

+0

@Stasel,是的,這是一個標準,是服務器端語言不可知的,所以受到所有現代服務器端語言的支持。如果你發現它不支持一種語言,你可以簡單地爲它創建一個解析器,因爲瀏覽器發送原始數據,比如'id [] = a,id [] = b,id [] = c'等等只要您有權訪問原始帖子/獲取數據,便於用任何語言閱讀。 – MrCode 2013-02-18 15:32:51

-4

使用獨特的ID爲您的複選框,例如,

<form> 
<input type="checkbox" name="id1" value="value1"> 
<input type="checkbox" name="id2" value="value2"> 
...//create in a loop 
<input type="checkbox" name="id3" value="value3"> 
</form> 
+0

我不知道計數,那我怎麼讀它們? – Ehsan 2013-02-18 14:52:19

+0

@Ehsan這個例子不是你應該使用的方式。您必須單獨驗證每個ID,MyCode發佈的示例就是您應該使用的示例。 – 2013-02-18 15:14:33

+0

這可行,但它需要大量不必要的工作,因爲您必須確保「名稱」是唯一的,然後在服務器端你必須循環數據數組並搜索'id'鍵來確定它是否是其中的一個值。 – MrCode 2013-02-18 15:34:51

相關問題