

初歩的な質問ですみません。
現在、PHPで問い合わせフォームを作成しており、チェックボックスが選択されていない場合に、エラーを返す処理を行いたいです。
通常のテキストフィールドの場合は、下記の文言でエラー処理が行われるのですが、
チェックボックスが選択されているかを見るにはどうすればよいかご教示いただけないでしょうか。
ーーーーーーーーーーーーーーーー
■フォーム側
{if:$required.お名前} <p>エラー文</p> {/if:$required.お名前}
■php
// 入力必須チェック
if (isset($_POST['required'])) {
foreach ($_POST['required'] as $v) {
$tmpl->set("required.$v", false);
if (empty($_POST[$v])) {
$tmpl->set("required.$v", h($v . ERROR_REQUIRED));
$global_error[] = h($v . ERROR_REQUIRED);
$global_error_flag = true;
}
}
}
ーーーーーーーーーーーーーーーー
No.1ベストアンサー
- 回答日時:
チェックボックスのnameをどうしているかによりますね
そもそもチェックボックスはチェックしなければデータが飛ばないので
普通にnameをつけていればissetでチェックすればセットされていないという
分岐にひっかかるでしょう
また「hogehoge[]」的なカッコをつけたnameで拡張していれば
isset($_REQUEST["hogehoge"])すると同時に
is_array($_REQUEST["hogehoge"])もチェックする必要があります
その上で、foreachすればいいでしょう
例示のものでいうと
>if (isset($_POST['required'])) {
>foreach ($_POST['required'] as $v) {
となっているのは
if (isset($_POST['required']) and is_array($_POST['required'])) {
foreach ($_POST['required'] as $v) {
とするか
if (isset($_POST['required'])) {
foreach (is_array($_POST['required'])?$_POST['required']:array($_POST['required']) as $v) {
のようにしておくと汎用性があがります
requiredが配列だと確定しているのであれば、手を抜いて
if (isset($_POST['required'])) {
foreach ((array) $_POST['required'] as $v) {
という書き方でも通用します
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPで10連ガチャを作成したいの...
-
読み(あ行~わ行)ごとに分け...
-
楽天市場ジャンル検索APIで順番...
-
配列をループでたくさん宣言し...
-
CSVデータの行数カウントをした...
-
PHP 多次元配列変数のデータ受...
-
プルダウンメニューにDBの内容...
-
PHPで、CSVファイルを、指定し...
-
【Smarty】foreach関数やsectio...
-
プルダウンメニューでCSVデータ...
-
$_SESSIONに二次元配列を使える...
-
Resource id #3 と表示されま...
-
csvの内容を行単位で削除したい
-
SQL文の実行結果を変数で受けて...
-
smartyでページングするには
-
CSVファイルの最終行のデー...
-
C言語でCSVファイルの行数を読...
-
foreachのなかで次のキーを参照...
-
String だと「 ByRef引数の型が...
-
メールフォームから送られてき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語の配列をPush(追加)する...
-
cakephpでのトランザクション処...
-
行列
-
読み(あ行~わ行)ごとに分け...
-
特定の文からメールアドレスの...
-
c言語 単位行列
-
STLのvectorで作った配列をメン...
-
多次元配列をエンコードする関...
-
2次元配列を1次元配列にするには
-
phpで、配列の値が意図せず変わ...
-
Delphiで別unitで宣言した「TAr...
-
連想配列に追加ってできるン?
-
正規表現
-
配列の並びについて
-
PHPでCSVを出力するさいに、ル...
-
pascalについて知りたいのです...
-
文字列の取得について
-
ファイルの書き込みについて教...
-
数独かを判断するプログラム
-
文字列の並び替え
おすすめ情報