PHP复选框值

时间:2012-06-17 15:25:24

标签: php mysql html

  

可能重复:
  Submit an HTML form with empty checkboxes

我正在尝试向数据库提交一些数据。我正在尝试将表单中的复选框的值提交到数据库,如下所示:

<input type='checkbox' name='continue' <?php if ($_POST[continue] == TRUE)  echo "value='y' checked='checked'"; else  echo "value='n'"; ?> />

当我选中复选框时提交数据时,该值将为“y”。但是当选中该复选框时,没有数据发送到数据库。

请告知。

4 个答案:

答案 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)

选中的复选框成功(并提交其值),未选中的复选框不是(也不是)。

您需要给复选框一个固定值,然后根据数据的存在(或不存在)确定是否已检查,而不是数据的具体值。

只有当您有多个具有相同名称的复选框时,该值才有用(例如,“勾选您定期使用的每种运输方式”类型的问题。)