アンケートフォームを自社サイトや個人ブログに設置したいけれど、プラグインに頼らずHTMLだけでシンプルに実装したいというニーズは根強いものです。
本記事では、必要最低限のマークアップからバリデーション、スタイルカスタマイズ、サーバー連携の基本までを紹介します。
HTMLアンケートフォームの基本構造
まずはフォームの土台となる<form>タグの基本構造を押さえましょう。action属性で送信先URLを指定し、method属性でGETかPOSTを選択します。アンケートではユーザー入力が多いため、セキュリティ上POSTが推奨されます。
フォーム内には<input>や<textarea>、<select>などの要素を置き、ユーザーからの回答を受け付けます。各要素にはname属性を必ず付与し、サーバー側で受け取れるように設計してください。
必須項目にはrequired属性を付けることで、HTML5ネイティブのバリデーションが働きます。JavaScriptを使わずとも最低限の入力チェックが可能です。
主要な入力フィールドと使い分け
テキスト入力には<input type=”text”>、メールアドレスには<input type=”email”>、自由記述には<textarea>を用います。選択式は<select>と<option>、複数選択には<input type=”checkbox”>を使い分けましょう。
ラジオボタン(<input type=”radio”>)は同じname属性を共有することで一つだけ選ばせられます。選択肢が多い場合は<select>、見た目を重視する場合はラジオボタンを選ぶと良いでしょう。
隠しデータを渡す<input type=”hidden”>も活用し、アンケートIDやセッション情報を混入できます。ただしクライアント側で改ざんされる可能性があるため、重要データはサーバー側で再検証してください。
サンプルコード①:シンプルアンケートフォーム
まずは最小構成のサンプルを見てみましょう。以下のコードは「お名前」「メール」「ご意見」を受け付けるだけのシンプルなフォームです。
<form action="/submit.php" method="post">
<label>お名前(必須):<input type="text" name="name" required></label>
<label>メールアドレス(必須):<input type="email" name="email" required></label>
<label>ご意見:<textarea name="comments"></textarea></label>
<button type="submit">送信する</button>
</form>
上記をコピペすれば即座にアンケートフォームが完成します。required属性により必須入力チェックが働き、type=”email”でメールアドレスの形式チェックもOKです。
バリデーションと入力チェックの強化
HTML5だけでもかなりのバリデーションが可能ですが、より細かく制御したいならpattern属性を使います。正規表現で文字数や文字種を制限できるため、電話番号や郵便番号の入力チェックに便利です。
pattern属性による形式チェック
例えば郵便番号(7桁)の場合、pattern=”^\d{3}-?\d{4}$”と設定すると、ハイフン付き・なし両対応で7桁チェックができます。ユーザーに入力方法を指南するため、placeholder属性で例を表示しておくと親切です。
JavaScriptで即時フィードバック
さらに親切なUIを目指すなら、JavaScriptでkeyupイベントを監視し、入力内容に応じてエラーメッセージをリアルタイム表示しましょう。サーバーサイドの二重チェックも忘れずに実装します。
スタイルカスタマイズとレスポンシブ対応
デフォルトのフォームは味気ないため、CSSで見た目を整えます。フォーム全体にmax-widthを設定し、margin: 0 autoで中央揃えにすると、サイドバー表示でも美しく収まります。
フォームの基本CSS例
form { max-width: 600px; margin: 0 auto; padding: 1em; background: #f9f9f9; }
label { display: block; margin-bottom: 0.5em; }
input, textarea { width: 100%; padding: 0.5em; border: 1px solid #ccc; border-radius: 4px; }
button { padding: 0.7em 1.5em; background: #0073e6; color: #fff; border: none; border-radius: 4px; cursor: pointer; }
button:hover { background: #005bb5; }
上記CSSをテーマのstyle.cssに追加すれば、まるでプロがデザインしたようなフォームに生まれ変わります。レスポンシブも標準でOKです。
データ送信先とサーバーサイド処理の基本
HTMLフォームは表示だけでは完結しません。actionで指定したPHPやNode.jsのエンドポイントを実装し、POSTされたデータを受け取り、メール送信やDB保存を行います。
PHPでの簡易処理サンプル
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = htmlspecialchars($_POST['name'], ENT_QUOTES);
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
$comments = htmlspecialchars($_POST['comments'], ENT_QUOTES);
$to = 'info@example.com';
$subject = '新規アンケート回答';
$message = "名前: $name\nメール: $email\nご意見:\n$comments";
mb_send_mail($to, $subject, $message);
echo '送信ありがとうございました。';
}
?>
上記コードをsubmit.phpとして配置すれば、受信メールにアンケート結果が届きます。データベース保存やCSV出力も、PDOやfputcsvを使って簡単に追加できます。
まとめ:HTMLサンプルを応用して独自フォームを作成
本記事では「アンケートフォームのHTMLサンプル」をテーマに、基本構造、サンプルコード、バリデーション、CSSカスタマイズ、サーバー処理までを一貫して解説しました。
紹介したサンプルをベースに、項目を増やしたりデザインを変更したりするだけで、オリジナルのアンケートフォームが完成します。自社サイトやブログにコピペし、即座に実戦投入してみてください。

