1.はじめに(今回の目的)
前回は、必要ファイルや画面遷移図を整理しました。
今回は、実際に入力画面である index.php を作成していきます。
2.方針変更について
当初はアンケートフォームを作成する予定でしたが、
以下の理由からメンター予約フォームへと方針を変更しました。
技術的な理由
・カレンダー機能など、実践的なUIを取り入れてみたかった
・単純な入力フォームだけでなく、より複雑なデータ入力を扱う経験を積みたかった
実務を意識した理由
・現場ではExcelで予約や情報を管理しているケースが多く、
それをWebフォーム化することで効率化できるのではないかと考えた
・実際の業務に近い形のアプリケーションを作ることで、
今後の開発に活かせると感じた
結果として、単なる練習用のフォームではなく、
「実務でも使えることを意識したフォーム」を目指すことにしました。
3. 今回のゴール
メンター予約フォームの入力画面を作ります。
実務での利用も意識し、予約管理に必要な項目を一通り揃えました。
入力項目は以下です。
- 名前
- メールアドレス
- 電話番号
- 予約日
- 予約時間
- 相談方法
- 学習言語
- OS環境
- 相談カテゴリ
- 相談内容の詳細
- 緊急度のスライダー
- 同意チェック欄
4.index.phpで意識したこと
ただ入力欄を並べるだけではなく、
「あとで確認画面やデータベース保存につなげやすい名前」にすることを意識しました。
例:
- name
- learning_languages
- consultation_categories
- consultation_method
- details
5.現時点での画面
現時点では見た目は最低限ですが、入力機能の実装を優先しています。
今後CSSで見た目を整えていく予定です。

6.悩んだポイント
項目名の英語命名に悩みました。
特に「相談方法」「学習中の言語」「相談カテゴリ」は、
日本語ではすぐ分かるのに、英語の変数名にすると急に迷子になります。
ここで適当に名前をつけると、あとで confirm.php や complete.php を作る時に自分が苦しむので、できるだけ意味が分かる名前にしました。
7.工夫したところ
1.スライダー
スライダーについて、単純に値を選択するだけでなく、
「1〜5のどの値を選んでいるのか」が直感的に分かるよう工夫しました。
初期状態では、スライダーの数値が分かりづらく、どの位置がどの値なのか判断しにくい状態でした。
そのため、スライダーの下に目盛り(1〜5)を表示し、視覚的に分かりやすくなるよう調整しました。
ユーザーが迷わず入力できることを意識しています。
※詳細な実装については、別記事でまとめる予定です。
2.チェックボックス
相談カテゴリは複数選択できるように、チェックボックスにしました。
name="consultation_categories[]"
このように [] をつけることで、選択された値を配列として受け取ることができます。
これにより、複数の相談内容を柔軟に扱えるようにしました。
8.今回の反省
最初はアンケートフォームを作る予定でしたが、
考えているうちに「メンター予約フォーム」の方が実用的で面白そうだと思い、方向転換しました。
ただ、方向転換したことで項目がどんどん増えました。
「あんなこといいな、できたらいいな」状態です。
ドラ●もんの道具ではなく、PHP初心者の工数爆増装置でした。
9.次にやること(次回予告)
次回は、入力した内容を確認画面に送る confirm.php を作成します。
フォームで入力した値が、きちんと次の画面に渡せるかを確認していきます。
まとめ
今回は、メンター予約フォームの入力画面(index.php)を作成しました。
単純なフォーム作成ではなく、実務での利用を意識し、
入力項目の設計や命名、ユーザーが迷わないUIを考えながら実装しました。
特にスライダーやチェックボックスについては、
「どう使われるか」を意識して工夫しています。
次回は、入力内容を確認する画面(confirm.php)を作成していきます。
実務でも使える形を意識しながら、引き続き改善していきます。
ソースコード
今回作成したコードはこちらで公開しています。