我有一张表格,我想粘贴。它有很多复选框:
<label><span>ASD</span></label><input type="checkbox" name="condition[]" value="ASD" <?php if (in_array("ASD", $_POST['condition'])) echo 'checked'; ?> /><br />
<label><span>SLC</span></label><input type="checkbox" name="condition[]" value="SLC" <?php if (in_array("SLC", $_POST['condition'])) echo 'checked'; ?> /><br />...
提交后,如果用户不做任何选择,此工作正常。我认为这与数组为空的事实有关。我收到一个错误:
未定义的索引:条件
以及
in_array()期望参数2为数组,null
感谢
答案 0 :(得分:1)
如果用户未做出选择,则不会定义$_POST['condition']
。这是一个简单的修复:添加:
if (!isset($_POST['condition'])) $_POST['condition'] = [];
到你的剧本。
答案 1 :(得分:1)
您可以查看condition
数组是否已通过,是否未将其设为空array
if(!isset($_POST['condition'])) { $_POST['condition'] = array(); }
答案 2 :(得分:1)
这是因为:
1)如果用户没有做出任何选择&#34;条件&#34;不会被定义。
2)您正在使用in_array,它需要类型数组的第二个参数。
但是如果用户没有进行任何选择,则此参数将具有未定义的变量作为参数。
所以你可以使用:
<label><span>ASD</span></label><input type="checkbox" name="condition[]" value="ASD" <?php if (!empty($_POST['condition']) && in_array("ASD", $_POST['condition'])) echo 'checked'; ?> /><br />
SLC /&gt;
...