2013-04-11 218 views
1

我有一段代碼,它通過Ajax單擊特定按鈕時加載。沒有正確獲取單選按鈕中的單選按鈕

我已給每個輸入一個名稱,如txtname[],country[]radiobtn[]

的問題是,當我兩次填補這些3個字段和在第二迭代選擇單選按鈕,然後通過print_r($_POST);

打印後陣列被示出在下面的結果如下:

[txtname] => Array ([0] => xyz[1] => abc)[country] => Array ([0] => India[1] => United Kingdom) [radiobtn] => Array ([0] => true)

它不應該像顯示:

[txtnam e] => Array([0] => xyz [1] => abc)[country] => Array([0] => India [1] => United Kingdom)[radiobtn] => Array([0 ] =>「」[1] => true)

那麼如何去了解哪個迭代單選按鈕被選中? 任何幫助表示讚賞。

HTML

<input type="radio" name="radiobtn[]" value="true"> 
<input type="text" name="txtname[]" > 
    <select name="country[]"> 
<option value="country" selected="selected">Select Country</option> 
<option value="United States" >India </option> 
<option value="United Kingdom">United Kingdom</option> 
    </select> 
+0

給我們一些代碼嗅探xD – aleation 2013-04-11 08:27:08

+2

單選按鈕與數組似乎不正確。 – hjpotter92 2013-04-11 08:33:31

+0

@ hjpotter92怎麼樣? – 2013-04-11 08:37:06

回答

0

您從radiobtn這是radio類型的期望兩個值。單選按鈕類型應該強制只選擇一個項目,因此您試圖填充的radiobtn[]陣列將總是只包含一個值,即true。那就是通過正確的結果顯示:

[radiobtn] => Array ([0] => true) 

radiobtn[]陣列每次迭代覆蓋,導致只有最後的結果被存儲在$_POST全局變量。因此,[]radiobtn[]是毫無意義的,因爲永遠不會有多個值。

對於多種選擇,您可能需要查看type="checkbox",它可以爲名稱存儲多個值。一個例子是:

<input type="checkbox" name="btn[]" value="A">A</input> 
<input type="checkbox" name="btn[]" value="B">B</input> 
<input type="checkbox" name="btn[]" value="C">C</input>