读取动态复选框数组在php/html


Reading dynamic checkbox array in php/html

我有多个动态创建的表单字段。

<label><input type="text" name="txtAmt[]">Amount</label>
<label><input type="checkbox" name="cbMarkPaid[]">Mark as Paid</label>

我使用post方法将for提交到php文件。我知道当您不选中复选框时,该复选框不会将数据发送到服务器。但是我想知道未选中的复选框的索引

。如果我有4个复选框cb1,cb2,cb3,cb4,如果cb3,cb4被选中。然后PHP接收一个包含两项的数组:

array(2) {[0]=> string(2)"on" [1]=> string(2)"on"}

但是我希望数组是:

array(2) {[0]=> string(2)"off" [1]=> string(2)"off" [2]=> string(2)"on" [3]=> string(2)"on"}.

请不要isset($_POST['cbMarkPaid'][])也给出相同的输出谢谢你

POST上的复选框不能这样做。根据定义,未选中的复选框永远不会成功。

一个成功的控件是"有效的",可以提交。
所有"on"复选框都可能成功。

你能做的最好的是索引你的数组,并寻找空白。例如

<label><input type="text" name="txtAmt[0]">Amount</label>
<label><input type="checkbox" name="cbMarkPaid[0]">Mark as Paid</label>
<label><input type="text" name="txtAmt[1]">Amount</label>
<label><input type="checkbox" name="cbMarkPaid[1]">Mark as Paid</label>

假设您未选中第一个,选中第二个。那么你的数组看起来就像

array(1) {[1]=> string(2)"on"}

所以你知道[0]是关闭的因为它没有提交