【PHP】フォームを作る
テキストの送信フォーム
例(送信フォーム画面)
<form action="xxx.php" method="post">
//action属性:送信ボタンを押したあとに移動するページのURLを記入
//method:フォームの入力内容のデータの送信形式を指定(getかpostだが、フォームではpostが一般的)
get:URL入力された値をのせて送信する
post:URLにはのせず、裏側で処理をする
<input type="text" id="my_name" name="my_name" maxlength="255" value="">
//type属性:表示されるテキストフィールドの種類を指定
//id属性:個々の入力項目を管理するid/class名のようなもの
//name属性:個々の入力項目を管理するid/class名のようなもの(通常idと同じにする)
//maxlength属性:最大値を指定
//value属性:初期値を設定することができる
<input type="submit" value="送信する"></input>
//tipe属性:submitとすれば送信ボタンになる
//value属性:ボタンに表示する文字を自由に指定できる
例(入力されたデータを受け取る画面)
xxx.php
お名前:<?php print(htmlspecialchars($_REQUEST['my_name'],ENT_QUOTES)); ?>
//$_REQUEST['my_name']:inputタグで入力されたname属性の値を受け取る。
//htmlspecialchars(何を、どのように):2つのパラメーターを指定。2つ目はENT_QUOTES(''をつけない)とする。
※htmlspecialchars(何を、どのように):セキュリティのため、HTMLのタグを入力された場合もただの文字列として受け取る。
※$_REQUESTにすると、getでもpostでも受け取ることができる。
※$_REQUESTを使うと、postで送らなければいけないパスワードなどもgetで送られる可能性がある。よって通常は、inputタグで指定したmethod属性に対応させ、$_GETもしくは$_POSTとする。
例(送信フォーム画面)
<input type="radio" name="gender" value="male">男性/
例(入力されたデータを受け取る画面)
<?php print(htmlspecialchars($_POST['gender'],ENT_QUOTES)); ?>
→male/femaleが出力。
例(送信フォーム画面)
<input type="checkbox" name="agree" value="on">同意する
複数の場合
例(送信フォーム画面)
<input type="checkbox" name="reserve" value="1/1">1月1日
<input type="checkbox" name="reserve" value="1/2">1月2日
<input type="checkbox" name="reserve" value="1/3">1月3日
//複数のチェックボックスの値を送信するには、name属性に[]をつける必要がある
例(入力されたデータを受け取る画面)
foreach ($_POST['reserve'] as $reserve){
print (htmlspecialchars($reserve, ENT_QUOTES) .' ');
} //複数のチェックボックスのデータを受けとる際は、配列で受け取る
セレクトタグ
例(送信フォーム画面)
※フォームでは、画面に表示している情報ではなく、value属性の値が送られることに注意。