如何验证多重复选框状态?

时间:2011-10-20 11:54:22

标签: php jquery xhtml

我正在使用position absolute's validation engine表单。我想检查是否至少选中了一个来自组的复选框。在examples中,通过为复选框组设置相同的name属性来完成。 我无法命名具有相同名称的复选框,因为我使用以下代码将其状态保存在数据库中:

$values = array(
    'checkbox1'         => null,
    'checkbox2'         => null
);

foreach (array_intersect_key($_POST, $values) as $key => $value) {
    $values[$key] = mysql_real_escape_string($value);
}

$query_add_candidate=sprintf("INSERT INTO dbase (checkbox1, checkbox2)    VALUES    ('$values[checkbox1]', '$dates[checkbox2]')"

现在checkbox1checkbox2会单独验证,因为它们有不同的名称。如何检查所选择的是否至少是其中之一?

这是我的HTML代码:

<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="checkbox1" id="maxcheck1" value="1"/> Text1
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="checkbox2" id="maxcheck2" value="2"/> Text2

3 个答案:

答案 0 :(得分:1)

如果已发布,则检查,

所以,如果你在$_POST["checkbox_name"]中有它,那么它被检查,否则它不会被发布。

答案 1 :(得分:1)

在php上,

if(!$_POST['checkbox1'] && !$_POST['checkbox2']){
    echo 'Error check at least one';
}

但你真正想要的是一个数组, HTML,

<input type="checkbox" value="ch1" name="check[]" /> 
<input type="checkbox" value="ch2" name="check[]" />

PHP

<?php 
if(empty($_POST['check'])){
 echo 'Error: hey, check at least one will you!?'; 
}

?>

所以这样你就不必一个一个地检查所有这些,特别是如果你在同一页面上加载了它们。

注意:你也应该知道,如果没有选中复选框,它也不会在php $ _POST超全局上设置,否则如果勾选,它将显示{{1}抱着,

答案 2 :(得分:0)

您可以添加大量代码以便以较差的方式重新实现控件数组,或者您可以更改构建查询的代码,以便它可以接受控件数组。

我更喜欢后者。