

初歩的な質問ですみません。
現在、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のheader("Location:#pos")...
-
PHP8でWarning:Undefined varia...
-
フォームで戻った際に入力済み...
-
csvファイルについて教えて下さ...
-
セッション関数を使わずにファ...
-
composerをインストールしたい...
-
SplFileObject を利用したとき...
-
PHPSpreadsheetによる書き出し...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
PHPからCSVをアップロード後、m...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語の配列をPush(追加)する...
-
CArrayのソート
-
再帰関数を用いて配列の合計を...
-
行列
-
CArrayの要素としてCStringArra...
-
プログラミングのPythonのnoteb...
-
スカラーのベクトル微分
-
cakephpでのトランザクション処...
-
文字列の抜き出し(PHP)
-
pg_copy_fromの使い方について...
-
【PHP】配列のキー名の修正は可...
-
np.stack()とnp.array()の違い
-
PHPは何故値渡しより参照渡しの...
-
多次元配列をソートする綺麗な...
-
配列の要素(value)に、変数を...
-
タグの中身だけを取り出す正規
-
PHPのmin関数、「1」以上の数値...
-
fgetc関数について
-
テキストエリアに入力した複数...
-
配列の添え字が小数だとどうなる?
おすすめ情報