选中哪个复选框并指定值

时间:2012-07-02 14:47:35

标签: php

我正在尝试创建逻辑以查看选中的复选框(5个可能的复选框),如果选中它,则为其指定值0.如果未选中,则为其指定值1。代码片段突出显示此但在我的else语句中抛出一个解析错误,我无法弄清楚原因。     //检查标记了哪个复选框是否正确答案

//Correct answer variables
$chkBox1 = 'unchecked';
$chkBox2 = 'unchecked';
$chkBox3 = 'unchecked';
$chkBox4 = 'unchecked';
$chkBox5 = 'unchecked';

if (isset($_POST['chkBox1'])) {

if ($chkBox1 == 'chkBox1Selected') {
$chkBox1 = '0';
                }
else{
$chkBox1 = '1';
}
}//End of chkBox1Selected logic

2 个答案:

答案 0 :(得分:0)

您无法理解复选框的工作原理。如果在发布之前取消选中复选框,则将在发布时设置。

因此,代码中永远的唯一条件是每个值都会显示为1,因为它们无法被覆盖。

拿这个片段然后尝试一下。它动态地循环您需要的变量数量,并根据提交的值分配值。

$_POST['chkBox4'] = 'test';

for( $i = 1; $i <= 5; $i++ )
{
    $name = 'chkBox' . $i;
    $$name = !isset( $_POST[$name] ) ? 0 : $_POST[$name];
}

print $chkBox2 . ' // '. $chkBox4;

http://codepad.org/51RotnCf

答案 1 :(得分:-2)

好的,我从语法的角度来看它,但是现在无论选择什么,它仍然为所有复选框分配值1,而不是将所选复选框更改为值0.这是新代码从语法角度来看这是正确的,但无论如何都默认为1:

//检查标记了哪个复选框以获得正确答案

//Correct answer variables
$chkBox1 = '1';
$chkBox2 = '1';
$chkBox3 = '1';
$chkBox4 = '1';
$chkBox5 = '1';

if (isset($_POST['chkBox1'])) {

if ($chkBox1 == 'chkBox1Selected') {
$chkBox1 = '0';
}

}//End of chkBox1Selected logic


if (isset($_POST['chkBox2'])) {

if ($chkBox2 == 'chkBox2Selected') {
$chkBox2 = '0';
}

}//End of chkBox2Selected logic


if (isset($_POST['chkBox3'])) {

if ($chkBox3 == 'chkBox3Selected') {
$chkBox3 = '0';
}

}//End of chkBox3Selected logic


if (isset($_POST['chkBox4'])) {

if ($chkBox4 == 'chkBox4Selected') {
$chkBox4 = '0';
}

}//End of chkBox4Selected logic

if (isset($_POST['chkBox5'])) {

if ($chkBox5 == 'chkBox5Selected') {
$chkBox5 = '0';
}

}//End of chkBox5Selected logic