電子書籍の厳選無料作品が豊富!

チェックボックスが複数個(5~6個)あります。

hajime.html
<form action="niban.php" method="post">
<input type="checkbox" value="A" name="CHK1" />
<input type="checkbox" value="B" name="CHK2" />
<input type="checkbox" value="C" name="CHK3" />
<input type="checkbox" value="D" name="CHK4" />
<input type="checkbox" value="E" name="CHK5" />
<input type="checkbox" value="F" name="CHK6" />
</form>
●このA~Fのうち、ひとつでもチェックされていなければ
チェックしてください。とエラー表示させたいのですが…



●次のページではこのようにデータを受取していします。

niban.php// フォームの値取得は下記のように行っています。
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST as $k => $v){
if (get_magic_quotes_gpc()) {
$v = stripslashes($v);
}
$v = htmlspecialchars($v);
$v = addslashes($v);
$$k = $v;
}
}
else {
exit();
}

$ErrFlg = 0;(エラーの時は$ErrFlgを1にします)

●エラー構文のサンプル↓
if ($name == "" ) {
echo "<p>名前を入力してください。";
$ErrFlg = 1;
}


どうぞお力をおかしください

A 回答 (4件)

がると申します。

一応その道の専門家として。
JavaScriptによる値のチェックはせいぜいが「利便性を高める」程度のものであり、「JavaScriptで値をチェックしたからエラーじゃない/エラーだ」と判定するのは論外な手法ですのでご注意ください。

あまりにも気になったので一言だけ。
    • good
    • 0

フォームのチェックはJAVASCRIPTで送信前にするほうが楽です。



どうしても受け側のページでエラー表示したいなら、javascriptで入力ミスの情報をhiddenで送るのがいいと思いますよ。

参考URL:http://www.tagindex.com/javascript/form/check4.h …
    • good
    • 0

えーと、そもそも全てのPOSTデータを総攫いで取りこむやり方は


あまりセキュリティ上頭のよいやり方ではありません。

フォームを設定するのは自分なのですか、要素はCHK1~6だと
わかっているわけです。なので、ここは$_POSTのCHK1~6のみを
チェック対象とすべきです。

また・・・
>ひとつでもチェックされていなければ

というのは「全てをチェックしなくてはいけない」という意味でしょうか?
それとも「少なくともどれか一つをチェックしなくてはいけない」という
意味でしょうか?
普通に読めば前者だと思いますが、全てにチェックをつけるという
フローは無駄すぎます。そんなことをするくらいなら、項目を列記したのち
「全ての項目を承認した場合はチェックする」というようなインタフェースが
妥当ですね。
    • good
    • 0

大きなお世話かもしれませんが、JavaScriptで行った方が


いいのではないでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!