可能的重复项:
提交带有空复选框的 HTML 表单
我正在尝试向数据库提交一些数据。我正在尝试将表单中复选框的值提交到数据库,如下所示:
<input type='checkbox' name='continue' <?php if ($_POST[continue] == TRUE) echo "value='y' checked='checked'"; else echo "value='n'"; ?> />
当我在选中复选框时提交数据时,值将为"y"。 但是当选中该复选框时,没有数据发送到数据库。
请指教。
解决方案 1:(更好的方法)
<input type="checkbox" name="continue"<?php echo (isset($_POST['continue']) ? ' checked="checked"' : ''); ?> />
在数据库 (?) 文件中:
$continue = isset($_POST['continue']) ? 'y' : 'n';
.
解决方案 2:(不推荐)
<input type="hidden" name="continue" value="<?php echo isset($_POST['continue']) ? 'y' : 'n'; ?>" />
<input type="checkbox" name="continue_x"<?php echo (isset($_POST['continue']) ? ' checked="checked"' : ''); ?> onclick="document.getElementsByName('continue')[0].value=this.checked?'y':'n';" />
首先,当您尝试使用 PHP 验证复选框时,它不会像 JavaScript 那样进行实时检查,您可以立即进行检查而无需与服务器端交互。
所以你想做什么,我假设你想将数据从表单插入到数据库中。
<input type='checkbox' name='continue' <?php if (isset($_POST[continue])) echo
"checked='checked'"; ?> />
因此,您对上述代码所做的是使用isset
函数进行检查,如果选中该复选框并且您再次调用表单,该复选框仍将保留状态并且仍会被选中。
现在进入需要获取要插入到数据库中的值的部分。
if (isset($_POST[continue]))
$cont = 'y';
else $s = 's';
在将值插入查询之前,您将需要它,而不是现在执行$_POST[continue]
只需使用 $cont
作为查询中的值,您将获得正确的值。
试试这个
<input type='checkbox' name='continue' <?php if ($_POST['continue']==TRUE) { echo "value='y' checked='checked'"; } else { echo "value='n'"; } ?> />
选中的复选框成功(并提交其值),未选中的复选框不成功(也不会)。
您需要为复选框提供一个固定值,然后根据数据的存在(或不存在)来确定它是否已选中,而不是数据的特定值。
仅当您有多个具有相同名称的复选框时,该值才重要(例如,对于"勾选您定期使用的每种交通方式"类型的问题。