我有通过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 )
它不应该显示如下:
[txtname] =>数组([0] => xyz [1] => abc)[country] =>数组([0] =>印度[1] =>英国) [radiobtn] =>数组([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 :(得分: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>