PHP フォームの完全な例:入力値の保持
1. PHP フォームにおける入力値の維持
この章では、ユーザーが送信(Submit)ボタンをクリックした際に、入力フィールド(Input Fields)に入力された値をそのまま保持する方法について解説します。
ユーザーが送信ボタンを押した後も入力値を表示させるには、name、email、website といった入力フィールドの value 属性(Attribute)内に、小さな PHP スクリプトを追加します。comment(テキストエリア)フィールドの場合は、<textarea> タグと </textarea> タグの間にスクリプトを記述します。
このスクリプトは、それぞれ $name、$email、$website、$comment 変数の値をエコー(出力)する役割を果たします。
また、どのラジオボタン(Radio Buttons)が選択(Checked)されていたかを表示する処理も必要です。ラジオボタンの場合、value 属性ではなく checked 属性を動的に操作することで、選択状態を再現します。
2. フィールドごとの実装コード例
各入力要素において、PHP を利用して値を保持する具体的なコードは以下の通りです。
テキストフィールドとテキストエリアの例:
名前: <input type="text" name="name" value="<?php echo $name;?>">
メールアドレス: <input type="text" name="email" value="<?php echo $email;?>">
ウェブサイト: <input type="text" name="website" value="<?php echo $website;?>">
コメント: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>ラジオボタンの例:
ラジオボタンでは、現在の変数の値が各ボタンの value と一致するかを判定し、一致する場合に checked 属性を出力します。
性別:
<input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?> value="female">女性
<input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?> value="male">男性
<input type="radio" name="gender" <?php if (isset($gender) && $gender=="other") echo "checked";?> value="other">その他2.1 実装のポイント:isset() 関数の活用
ラジオボタンの判定コードで isset($gender) を使用している点に注目してください。これにより、フォームが最初に読み込まれた際(まだ変数が定義されていない状態)に、未定義変数によるエラー(Notice)が発生するのを防いでいます。
プロフェッショナルな開発現場では、このように UI(User Interface) の状態をサーバーサイドで管理することで、入力エラー時の再入力の手間を省き、UX(User Experience) を大幅に向上させることが可能です。