PHP

メッセージの入力フォームを作る

  1. 最終更新日:
  2. 公開日:

「ひと言掲示板」にメッセージを投稿するためのフォームについて、枠組みとなるHTMLを作成していきます。

この記事のポイント

  • フォームの枠組みになるHTMLを作成する
  • form要素と送信ボタンがあればデータは送信される

メッセージの入力フォームを作る

今回から「ひと言掲示板」のメッセージを投稿するためのフォームのHTMLから作っていきます。

「ひと言掲示板を作る」の概要については「ひと言掲示板を作る」をご覧ください。
デモはこちら

掲示板は誰かが書いたメッセージを読むことができますが、まずはとにかくメッセージを投稿するためのフォームを用意する必要があります。
これがないと始まりません。

メッセージの入力フォームは次のように3つのステップで作成していきますが、今回は1つ目のHTMLを作成します。

  • 入力フォームのHTMLを作成 ← 今回
  • メッセージのデータを受け取る
  • ファイルへデータを書き込み

メッセージを入力するフォームはページの赤枠で囲っている部分です。
このエリアを作っていきましょう。

今回作成する入力フォーム

まずはHTMLの骨格を用意する必要がありますが、下記ページの「outline.php」からコードをそのままコピペなどして「index.php」というファイル名で保存してください。
outline.php - Github

CSSを含むためやや長いですが、内容は「<!DOCTYPE html>」から始まるごく普通のHTMLのみでPHPなどのコードはありません。
コードの下の方にある、コメントアウトされた「ここにメッセージの入力フォームを設置」のところに今回の入力フォームのHTMLが入ります。

index.php

<h1>ひと言掲示板</h1>
<!-- ここにメッセージの入力フォームを設置 -->
<hr>

ちなみに、すぐ下にある「ここに投稿されたメッセージを表示」には投稿されたメッセージが入りますが、こちらは後の章で作成します。

フォームのHTMLを作る

それでは今回の本題である入力フォームを作成していきましょう。
各HTML要素の役割についてはこの後すぐに解説しますが、まずは「index.php」を開いて、以下のコードを全て入力してください。

index.php

<form method="post">
  <div>
    <label for="view_name">表示名</label>
    <input id="view_name" type="text" name="view_name" value="">
  </div>
  <div>
    <label for="message">ひと言メッセージ</label>
    <textarea id="message" name="message"></textarea>
  </div>
  <input type="submit" name="btn_submit" value="書き込む">
</form>

全体を囲ったform要素はフォームに絶対不可欠な要素で、ブラウザはこの要素で囲った部分をフォームとして認識します。

index.php

<form method="post">
  <div>
    <label for="view_name">表示名</label>
    <input id="view_name" type="text" name="view_name" value="">
  </div>
  <div>
    <label for="message">ひと言メッセージ</label>
    <textarea id="message" name="message"></textarea>
  </div>
  <input type="submit" name="btn_submit" value="書き込む">
</form>

form要素の中にあるmethod属性はフォームのデータを送信する通信方式を指定します。
通信方式は「GET」や「POST」を使用することができますが、今回は「POST」による送信を行います。

form要素の中は3つの入力フォームが入った構成になります。

  • 表示名を入力するエリア
  • ひと言メッセージを入力するエリア
  • フォームに入力されたデータを送信するボタン

「表示名」と「ひと言メッセージ」は投稿として次の箇所に表示されます。

表示される箇所

表示名を入力するエリア

まずは表示名を入力するフォームから確認していきます。

index.php

<div>
  <label for="view_name">表示名</label>
  <input id="view_name" type="text" name="view_name" value="">
</div>

入力フォームに名前をつけるためのlabel要素、実際にデータを入力するinput要素、そしてこれらを1つにまとめるdiv要素から構成されます。

特に重要なのはinput要素です。
type属性で「1行テキスト」というフォームの種類を指定し、PHPで入力データを受け取ったときにデータを引用するための名前をname属性で指定しています。

フォームの種類はメールアドレス、パスワード、ファイルなど様々な入力形式に対応するために多くの種類が用意されています。
後で解説する送信ボタンもtype属性が「submit」になったinput要素です。

id属性の「view_name」はlabel要素for属性と結び付けるためのもので、この値が等しいとお互いが関連した要素になります。

ひと言メッセージを入力するエリア

続いて、メッセージを入力するためのフォームを解説します。
とはいえ、先ほどのinput要素textarea要素に置き換わっただけでほとんど同じです。

index.php

<div>
  <label for="message">ひと言メッセージ</label>
  <textarea id="message" name="message"></textarea>
</div>

textarea要素は複数行のテキストを入力するためのフォームです。
先ほどのinput要素は1行分の入力エリアなのでたくさんのテキストを入力したいときはやや不便ですが、こちらの要素であれば改行をしても快適に入力することができます。

textarea要素でもPHPで入力データを判別するためのname属性と、label要素に関連づけるためのid属性を同じように指定します。

フォームに入力されたデータを送信するボタン

最後に、入力された「表示名」と「ひと言メッセージ」を送信するためのボタンです。

index.php

<input type="submit" name="btn_submit" value="書き込む">

「表示名」と同じinput要素ですが、type属性に「submit」を指定すると送信ボタンになります。
新しくvalue属性が登場しましたが、ここで指定した名前がボタンのラベルとして表示されます。

このボタンを押すと、フォームに入力されている値は実際にデータとして送信されます。
あとはPHPで送信されたデータを受け取ってメッセージとして保存したり、保存したデータを引き出して掲示板として表示するようにしていきます。

以上でメッセージを入力するフォームのHTMLが完成しました。
次回はこのフォームから送信されたデータを受け取る機能を追加します。

今回作成したコード:Github

前のページひと言掲示板を作る

次のページメッセージのデータを受け取る

記事一覧

  1. ひと言掲示板を作る
  2. メッセージの入力フォームを作る
  3. メッセージのデータを受け取る
  4. ファイルにデータを保存する
  5. ファイルからデータを読み込む
  6. 投稿完了メッセージを表示する
  7. 投稿の未入力バリデーションをつける
  8. 投稿されたデータをサニタイズする
  9. 投稿データの保存にデータベースを使う
  10. 掲示板のデータベースとテーブルを作成する
  11. 投稿データをデータベースに登録する
  12. データベースからデータを取得する
  13. コードを整理する
  14. セッションで表示名の入力を省略する
  15. 管理ページを作成する
  16. ログインページを作る
  17. 投稿データをCSV形式でダウンロードする
  18. 投稿データをダウンロードする件数を指定する
  19. 投稿メッセージの編集ページを作る
  20. メッセージを編集する機能を実装する
  21. 投稿メッセージの削除ページを作る
  22. 管理ページにログアウトを実装する
  23. リロードによる多重投稿を防止する
  24. 投稿に文字数制限を設定する

前の記事

記事一覧

次の記事