记住表单复选框值

时间:2013-05-20 18:19:28

标签: php forms checkbox

我希望表单在发生错误时记住用户的输入。 我使用以下方法将其用于文本输入:

echo "<input id=\"quote_square\" type=\"text\" name=\"square\" placeholder=\"Square\" value=\"".  $_POST['square'] . "\">";

对于复选框,我无法使其工作。我确实找到了如何做到这一点的例子:

   <input type="checkbox" name="subscribe" <?php echo (isset($_POST['opdracht'])?'checked="checked"':'') ?> />

但是我将整个表单回显到php并将复选框输入保存到数组中:

echo "<input id=\"quote_round\" type=\"text\" name=\"round\" placeholder=\"Round\" value=\"".  $_POST['round'] . "\">";
echo "<input id=\"quote_square\" type=\"text\" name=\"square\" placeholder=\"Square\" value=\"".  $_POST['square'] . "\">";
echo "<label class=\"checkbox\"><input type=\"checkbox\" name=\"opdracht[]\" value=\"Blue\">Blue</label>";
echo "<label class=\"checkbox\"><input type=\"checkbox\" name=\"opdracht[]\" value=\"Black\">Black</label>";
echo "<label class=\"checkbox\"><input type=\"checkbox\" name=\"opdracht[]\" value=\"Red\">Red</label>";
echo "<label class=\"checkbox\"><input type=\"checkbox\" name=\"opdracht[]\" value=\"White\">White</label>";

有人可以提出如何获取复选框以保存用户输入的建议吗?

5 个答案:

答案 0 :(得分:0)

   echo '<input type="checkbox" name="subscribe"' .($yourData['opdracht']?'checked="checked"':'').' />';

答案 1 :(得分:0)

尝试

echo "<label class=\"checkbox\"><input type=\"checkbox\" ", 
    in_array("Blue", $_POST["opdracht"])?"checked='checked' ":"", 
    "name=\"opdracht[]\" value=\"Blue\">Blue</label>";

答案 2 :(得分:0)

试试这个:

echo isset($yourData['opdracht']) ? 'checked="checked"' : '';

 <input type="checkbox" name="subscribe" <?php  echo isset($yourData['opdracht']) ? 'checked="checked"' : ''; ?> />

答案 3 :(得分:0)

我不相信你正确使用数组。这种数组引用用于您提交相同数据的多个版本的情况。提交表单时会填充数组键,并且不会对未检查的值进行索引,因此您最终将使用不同大小的数组,具体取决于已检查的框数。将你的价值观分开将是有问题的。它需要是这样的;

echo "<input id=\"quote_round\" type=\"text\" name=\"round\" placeholder=\"Round\"     value=\"".  $_POST['round'] . "\">";
echo "<input id=\"quote_square\" type=\"text\" name=\"square\" placeholder=\"Square\" value=\"".  $_POST['square'] . "\">";
echo "<label class=\"checkbox\"><input type=\"checkbox\" name=\"opdrachtBlue\" value=\"Blue\">Blue</label>";
echo "<label class=\"checkbox\"><input type=\"checkbox\" name=\"opdrachtBlack\" value=\"Black\">Black</label>";
echo "<label class=\"checkbox\"><input type=\"checkbox\" name=\"opdrachtRed\" value=\"Red\">Red</label>";
echo "<label class=\"checkbox\"><input type=\"checkbox\" name=\"opdrachtWhite\" value=\"White\">White</label>";

然后您可以使用

<input type="checkbox" name="subscribe" <?php echo (isset($_POST['opdrachtRed'])?'checked="checked"':'') ?> />
如果先前已选中该复选框,则获取

答案 4 :(得分:0)

试试这个

<label class="checkbox"><input type="checkbox" checked= "<?php in_array('Blue', $deep['opdracht'])?'checked' :''; ?>" value="Blue">Blue</label>