2012-07-02 52 views
0

我正在嘗試創建邏輯以查看選中的複選框(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

它看起來像你想創建一個測驗。如果是這樣,有比這更好的方法,因爲你可以合併循環來大大簡化事情。 – nickb

+0

@nickb您的評論開始讓人想起MS Office回形針。 –

回答

-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 
+1

這應該是對原始問題的編輯或評論,而不是答案。 – Bruce

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

相關問題