我有多个动态创建的表单字段。
<label><input type="text" name="txtAmt[]">Amount</label>
<label><input type="checkbox" name="cbMarkPaid[]">Mark as Paid</label>
我使用post方法将for提交到php文件。我知道当你没有检查时,复选框不会将数据发送到服务器。但我想知道复选框的索引是什么没检查。
E.g。如果我有4个复选框cb1,cb2,cb3,cb4和cb3,则选中cb4。然后php收到一个包含两个项目的数组:
array(2){[0] =&gt;字符串(2)&#34; on&#34; [1] =&GT;字符串(2)&#34; on&#34; }
但我希望数组为:
array(2){[0] =&gt; string(2)&#34; off&#34; [1] =&GT; string(2)&#34; off&#34; [2] =&GT;字符串(2)&#34; on&#34; [3] =&GT; string(2)&#34; on&#34;}。
请isset($_POST['cbMarkPaid'][])
不提供相同的输出
谢谢
答案 0 :(得分:0)
使用POST复选框无法执行此操作。根据定义,unchecked checkboxes are never successful。
成功控制对提交是“有效”的 所有“打开”复选框都可能成功。
您可以做的最好的事情是索引数组并寻找差距。例如
<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] =&gt; string(2)“on”}
所以你知道[0]
因为没有提交而被关闭