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
4

2 に答える 2

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

于 2012-07-02T16:57:09.903 に答える
-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
于 2012-07-02T16:30:50.447 に答える