我正在尝试向数据库提交一些数据。我正在尝试将表单中的复选框的值提交到数据库,如下所示:
<input type='checkbox' name='continue' <?php if ($_POST[continue] == TRUE) echo "value='y' checked='checked'"; else echo "value='n'"; ?> />
当我选中复选框时提交数据时,该值将为“y”。但是当选中该复选框时,没有数据发送到数据库。
请告知。
答案 0 :(得分:2)
解决方案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';" />
答案 1 :(得分:1)
首先,当您尝试使用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
作为查询中的值,您将获得正确的值。< / p>
答案 2 :(得分:0)
试试这个
<input type='checkbox' name='continue' <?php if ($_POST['continue']==TRUE) { echo "value='y' checked='checked'"; } else { echo "value='n'"; } ?> />
答案 3 :(得分:0)
选中的复选框成功(并提交其值),未选中的复选框不是(也不是)。
您需要给复选框一个固定值,然后根据数据的存在(或不存在)确定是否已检查,而不是数据的具体值。
只有当您有多个具有相同名称的复选框时,该值才有用(例如,“勾选您定期使用的每种运输方式”类型的问题。)