こんにちは。Aです。
今日は先週に引き続き、PHP初心者講座の第2弾。
文字を書くだけでは面白くないので、入力した内容を表示させてみようって話でした。
では早速。
テキストボックスに入力した文字を表示させる
画像で紹介するとこんなこんな感じ。
適当に文字を入力して”送信する”ボタンを押すと
その下の「」内に入力した文字が表示されるようなプログラム。
ソースコードで紹介するとこんな感じ。
冒頭のでこれがHTML文書であることの指定をして。
にはその文書の情報を書いて。
そしてタグ内に記述する内容を書いていくわけですが…
“冒頭のでこれがHTML文書であることの指定”って所。
今回はhtml文書内にphpを埋め込む形をとっているのでそう書いています。
ではこのプログラムの核の部分を見ていきましょう。
“form”で入力フォームを作る
さて。ソースコード上の①
<form method=”post”>の部分。
このタグは送信フォームを作りますよっていう宣言でして。
method=”post”, action =””の部分はそれぞれフォームの持つ属性。
method=””はデータの送信方法を。
action=””ではデータの送り先をそれぞれ記述しています。
phpには最初からいくつか変数が定義されているのですが、そのうちのひとつの
“$_POST”変数には一時的に入力内容を保存することが出来ます。
入力内容が保存された”$_POST”はaction=””で指定された送り先に送られるわけですが、
その$_POSTに入力内容を一時的に保存するメソッド(方法)がmethod=”post”なわけです。
で。今回は”1.php”内で処理を完結させるのでaction=””と、何も書いていません。
例えば”2.php”にデータを送信したいとなったときはaction=”2.php”って感じ。
で。②の<input name=”naiyou” type=”text” />の部分。
入力フォームの部品にあたるところですが、そのタイプは様々。
ユーザーに入力させたい情報を取り扱う上で最適なフォーム部品を選択出来るわけです。
今回は文字を入力したかったので”text”=”テキストボックス”を選択しました。
name=”naiyou”の部分は、入力された内容に関する属性を記述しています。
テキストボックスがいくつもあるような場面では
name=””属性でそれぞれの入力内容を差別化しないと、ごちゃごちゃしますし。
例えば”名前”・”住所”・”年齢”をそれぞれ入力してほしいときには
<input name=”onamae” type=”text” />
<input name=”address” type=”text” />
<input name=”age” type=”text” />って感じで属性付けをするわけです。
そして最後の<input type=”submit” value=”表示する” />の部分では送信ボタンを。
submitは”提出する”って意味で、valueにはボタン内部に表示される文字です。
文字で説明すると長ったらしいですけどソースコード的にはわずか4行。
この4行の記述が、入力された内容を送信しているわけです。
じゃあ、送信された内容を受け取りましょう!
入力された内容を受け取る
さて。先に紹介した
タグ中で入力された内容は action=””によって1.phpに帰ってきました。
今度はその内容を受け取ってみます。
と言っても、既に受け取られてるんですよね。さっきの$_POST変数で。
この場合、$_POST[‘naiyou’]に入力された内容が入っていますので、
後はこれを出力(echo)してあげるだけ。’naiyou’っていうのはさっきのname=””属性ですね。
で一件落着しそうなんですけど、echo @$_POST[‘naiyou’]の”@”って何って話に。
エラー制御演算子
ずばりそれはエラー制御演算子。エラーの表示をさせないようにしてます。
この18行だけだと、初回アクセス時にエラーが出てしまうんです。
初回にアクセスした段階では、$_POST[‘naiyou’]を出力しようにも、$_POST[‘naiyou’]に入力内容が入ってない。
そういう矛盾に対してPHPはエラーを吐くのですが、ここでは無理やり口を封じてます。
それでは少し芸が無いので、次回は”if”を使ってみてこのエラーを解決してみます。
なんだかプログラミングらしくなってきました。では。