我正在尝试创建逻辑以查看选中的复选框(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
答案 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;
答案 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