无论选择什么,它仍然为所有复选框分配值 1,而不会将所选复选框更改为值 0。从语法的角度来看,这是正确的代码,但无论如何我都不明白为什么它不将选定的框值更改为"0"
//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
语句永远不会计算为 true
。
看看一个复选框:
$chkBox1 = '1';
if (isset($_POST['chkBox1'])) {
if ($chkBox1 == 'chkBox1Selected') {
$chkBox1 = '0';
}
}
$chkBox1
设置为 '1'
,并且永远不会更改,因此它永远不会等于 'chkBox1Selected'
。
话虽如此,您不必担心复选框的值,因为只有选中的复选框才会发送到服务器。
从理论上讲,您可以只做:
if (isset( $_POST['chkBox1'])) {
$chkBox1 = '0';
}
但是,如果要读取复选框的值,则应能够执行以下操作:
if (isset( $_POST['chkBox1'])) {
if ($_POST['chkBox1'] == 'chkBox1Selected') {
$chkBox1 = '0';
}
}
或者,更简洁地说:
if( isset( $_POST['chkBox1']) && ($_POST['chkBox1'] == 'chkBox1Selected')) {
$chkBox1 = '0';
}