我希望表单在发生错误时记住用户的输入。 我使用以下方法将其用于文本输入:
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>";
有人可以提出如何获取复选框以保存用户输入的建议吗?
答案 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>