🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

Q&A

1回答

1967閲覧

選択したチェックボックスをセッションで遷移する方法

yupa

総合スコア6

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

0グッド

1クリップ

投稿2021/01/25 19:22

前提・実現したいこと

STEP1 〜 STEP3 のように複数のページに分かれて登録するフォームを作成しており、必須項目忘れがあると「入力してください」等と表示されるようにしたいんですが、反応しません。

どうして反応しないのか教えていただけませんか?

お願いいたします。

該当のソースコード

<?php if ($_POST['certification'] === ' ' ) { $error['certification'] = 'blank'; } if ($_POST['form-select'] === ' ' ) { $error['form-select'] = 'blank'; } if ($_POST['name'] === ' ' ) { $error['name'] = 'blank'; } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> </head> <body>     <form action="" method="POST"> <dl class="contact1__content-list"> <div class="contact1__content-item"> <p class="contact__txt">お持ちの資格を選択してください。</p> <dt class="contact1__content-ttl">資格(複数選択可)</dt> <dd class="contact1__content-checkbox"> <input class="checkbox-none" type="checkbox" name="certification[]" id="001" value="正看護師"> <label for="001" class="checkbox">正看護師</label> </dd> <dd class="contact1__content-checkbox"> <input class="checkbox-none" type="checkbox" name="certification[]" id="002" value="准看護師"> <label for="002" class="checkbox">准看護師</label> </dd> <dd class="contact1__content-checkbox"> <input class="checkbox-none" type="checkbox" name="certification[]" id="003" value="助産師"> <label for="003" class="checkbox">助産師</label> </dd> <dd class="contact1__content-checkbox"> <input class="checkbox-none" type="checkbox" name="certification[]" id="004" value="保健師"> <label for="004" class="checkbox">保健師</label> <?php if ($error['certification'] === 'blank'): ?> <p class="error">* 選択してください</p> <?php endif; ?> </dd> </div> <div class="contact1__content-item"> <dt class="contact1__content-ttl">ご希望転職時期</dt> <dd class="contact1__content-select"> <select class="select" name="form-select" id="form-select" required> <option value="-" selected>選択してください</option> <option value="1m">1ヶ月以内</option> <option value="3m">3ヶ月以内</option> <option value="6m">半年以内</option> <option value="1y">1年以内</option> </select> </dd> </div>        <div class="contact1__content-item"> <p class="contact__txt">お名前・生年月日を入力してください。</p> <dt class="contact1__content-ttl"> お名前 </dt> <dd class="contact2__item-input"> <input type="text" class="name" name="name" value="<?php print(htmlspecialchars($_POST['name'], ENT_QUOTES)); ?>" placeholder="山田花子"> <?php if ($error['name'] === 'blank'): ?> <p class="error">* 名前を入力してください</p> <?php endif; ?> </dd>       </div>  </dl> <div class="contact__submit"><input class="form-btn" type="submit" value="STEP2へ"> </div> </form> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/01/25 20:39 編集

タイトルと内容が合致してないような。セッションの話どこにもありませんし・・
guest

回答1

0

=== ' '
これだと半角スペースを判定条件にしています。
あとcertification[]のように[]で渡すと配列で渡されるので、
「配列の未入力」となると「配列の個数が0だったら」とかになるでしょうか(場合により、nullとかかもしれないが)。

form-selectに関しては「選択してください」のvalue値が-です。

まずはvar_dump()で$_POSTを出力し、「自身が未入力だとしている状態で各々何が渡ってきているか」を確認してください。

投稿2021/01/25 19:31

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yupa

2021/01/26 03:21

回答ありがとうございます。 半角スペースになっていたんですね! もう一度var_dump()で出力して、今どのような状況になっているのか確認してみます。
m.ts10806

2021/01/26 03:22

>半角スペースになっていたんですね! いえ、ご自身でそう書いたんですよね
yupa

2021/01/26 04:43

はい、気づいていませんでした。 ご指摘ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問