phpへデータを送るhtmlフォームを作成する

この記事がお役に立てたならシェアしてくれると嬉しいです。

htmlフォームでは文字等を入力して情報を送信できます。
そして、この送信された情報はPHPで取得し加工する事ができます。

PHPで出来る加工は文字からHtmlタグの除去、ファイルに保存・読み込み、mysqlで管理など色々できます。

フォーム自体はhtmlのタグで作成する必要があります。

スポンサーリンク

フォームのパーツの色々

■フォームの開始

<form action="移動先のurl" method="GET/POSTのどちらか">


このタグをフォームの開始で使います。

action=””はボタンを押した時に移動するurlを指定します。
省略可能で、省略した場合には移動せずに、このページにデータに送ります。

method=””は情報を送る方法をgetかpostのどちらかで指定します。

getはurlの最後にデータを追加して送信します。
「url?パーツ名=データ&パーツ名=データ…」といった感じです。
postはデータを見えないようにして送信します。

■フォームの終了

</form>


フォームの終端です。

でフォーム部分の記述を終了します。
ボタンやテキストを入力するボックスは

から

の間に記述します。

■フォームのパーツの設置

<input type="パーツの種類" name="送信先ページでの連想配列のキーの名前" value="初期値" size="大きさ">


・type…パーツの種類を設定します。以下のような種類があります。

    text…一行テキストボックス
    password…パスワードボックス
    checkbox…チェックボックス
    radio…ラジオボタン
    file…アップロードファイル
    submit…送信ボタン
    hidden…表示されないけれどデータを送る事ができるという物

・name…送り先の連想配列のキーになります。
・value…入力ボックスでは初期値。送られる値でもあります。
・size…パーツの大きさです。

name/value/sizeは省略できます。

・テキストボックスとパスワードボックスは文字数の制限をかける事ができます。
方法は「maxlength=”文字数”」という項目を追加します。

<input type="text" name="data" maxlength="4">


他にもdisabledと入れると入力部分が無効になりデータも送られなくなります。

<input type="text" name="data" disabled>


readonlyと入れると入力部分が読み取り専用になりますがデータは送られます。

<input type="text" name="data" readonly>


チェックボックスとラジオボタンには「checked」を入れると
初期状態でチェックが入ります。

<input type="radio" name="check" value="あああ" checked>あああ
<input type="radio" name="check" value="いいい">いいい


ラジオボタンはnameが同じ物にすると同じグループとなり
グループ内で選択される項目が常に最大一つのみになります。
つまり、押したラジオボタンにチェックがつき
それ以外のグループ内のラジオボタンのチェックが外れます。

他にもフォームのパーツにはtextarea等の種類がありますが
ここでは割愛します。


実際に動かしてみる

例としてデータを送受信できるシンプルなサンプルを作ってみました。

●test06_1.php

<form action="test06_2.php" method="post">
文字<input type="text" name="data" maxlength="4">
<br>
<br>
<input type="submit" name="botan" value="send">ボタン
</form>


phpへデータを送るhtmlフォームを作成する

フォームで宣言したパーツのsendボタンを押すと
test06_2.phpに対してテキストボックスに書かれた文字を送信し
ページもtest06_2.phpへジャンプします。

input type=”text”でテキストボックスを表示し、name=”data”でテキストを収納する場所の名前
maxlength=”4″で最大文字数を決めました。
つまり、最大4文字まで送る事が出来るフォームです。

これを実行すると上の画像のように文字入力ボックスとボタンのフォームが出現します。

sendボタンをクリックするとtest06_2.phpへ
一行テキストボックスとボタンの情報を持ってジャンプします。

そして、以下が受け取る側のページです。
この場合は

なので、データが$_POST[]に連想配列として代入されます。
だった場合はデータが$_GET[]に連想配列として代入されます。●test06_2.php

<?php
if(isset($_POST["botan"]))
{
	print $_POST["data"];
}
?>


if(isset($_POST[“botan”]))は
「$_POST[“botan”]」に送られたvalue=”send”の値が「TRUE か FALSEか?」を判定しています。

issetで$_POST[“botan”]の中身が空なのかを判定して
これで$_POST[“botan”]にデータが入っているなら
$_POST[“data”]の内容が表示されます。

ちなみにsendボタンを押してジャンプしてこないと
$_POST[“botan”]は未設定なのでissetの判定によりボタンの下は表示しませんし
$_POST[“botan”]が空ならば$_POST[“data”]にデータがあっても何も表示されません。

実際に実行すると

サンプル1 test06_1.php 送り側
サンプル2 test06_2.php 受け取り側

のようになります。

ちなみにsendボタンを押す前は$_POST[“botan”]は未設定なので
受け取り側を直接開くとissetの判定により、なにも表示しません。

$_GETや$_POST、フォームはパーツの種類も多く覚えるのも大変ですが
用途によっては使えると見栄えも良くできそうなので頑張ってみたいです。

ちなみに、$_GETはurlに情報が付加されているのでデータの再利用に使えて便利ですが
検索エンジン等に記録されたりする事があるらしく、パスワードのようなセキュリティが重要になる場合は$_POSTを使った方が良いようです。

一から書こうとして、えらく長文になってしまいました…。
次回以降、htmlフォームにある他の構成パーツを紹介します。

スポンサーリンク

この記事がお役に立てたならシェアしてくれると嬉しいです。


最新記事の更新情報をお届けします。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)