• 締切済み

チェックボックスのうちひとつでもチェックがなければエラー

チェックボックスが複数個(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; } どうぞお力をおかしください

みんなの回答

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.4

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

回答No.3

フォームのチェックはJAVASCRIPTで送信前にするほうが楽です。 どうしても受け側のページでエラー表示したいなら、javascriptで入力ミスの情報をhiddenで送るのがいいと思いますよ。

参考URL:
http://www.tagindex.com/javascript/form/check4.html
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

えーと、そもそも全てのPOSTデータを総攫いで取りこむやり方は あまりセキュリティ上頭のよいやり方ではありません。 フォームを設定するのは自分なのですか、要素はCHK1~6だと わかっているわけです。なので、ここは$_POSTのCHK1~6のみを チェック対象とすべきです。 また・・・ >ひとつでもチェックされていなければ というのは「全てをチェックしなくてはいけない」という意味でしょうか? それとも「少なくともどれか一つをチェックしなくてはいけない」という 意味でしょうか? 普通に読めば前者だと思いますが、全てにチェックをつけるという フローは無駄すぎます。そんなことをするくらいなら、項目を列記したのち 「全ての項目を承認した場合はチェックする」というようなインタフェースが 妥当ですね。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

大きなお世話かもしれませんが、JavaScriptで行った方が いいのではないでしょうか?

関連するQ&A