0

可能重复:
提交带有空复选框的 HTML 表单

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

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

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

请指教。

4

4 回答 4

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';" />
于 2012-06-17T15:31:10.457 回答
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作为查询中的值,您将获得正确的值。

于 2012-06-17T19:02:26.267 回答
0

选中的复选框是成功的(并提交它们的值),未选中的复选框不是(并且不要)。

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

仅当您有多个具有相同名称的复选框时,该值才重要(例如,对于“勾选您定期使用的每种交通方式”类型的问题。)

于 2012-06-17T16:44:31.793 回答
0

尝试这个

<input type='checkbox' name='continue' <?php if ($_POST['continue']==TRUE) { echo "value='y' checked='checked'"; } else { echo "value='n'"; } ?> />
于 2012-06-17T15:34:26.410 回答