やっぱりパソコンはむずかしいんだよ!
t-eyes.com
 

 


 

 

 

 

PHPなとこ>>SAMPLE>>フォームからのデータ取得

■フォームからテキストデータを受け取る

HTMLフォームから書き込まれたデータは、PHPでは $_POST または $_GETのスーパーグローバル変数(PHPプログラムの何処からでもアクセス可能)を利用することで、簡単に取得する事ができます。

フォームのnameプロパティがKeyとなり、Valueプロパティの値がそのまま値として格納されます。
例えばフォームからPOSTでテキストボックス(name="texistfield")に「今日は焼肉食べたい」等と入力し送信すると、PHPでは $_POST['textfield']="今日は焼肉食べたい" と処理されます。


送信された値:

※このsampleは、わかり易いようにPHP側では送信されたデータを加工し、同ページ内に表示しています。

POSTとGETの違いは、送信されるフォームによって決定され、特に意図が無い限りはPOSTを使うと問題ないでしょう。
以下のようなPHPスクリプト
testform.php を作成し実際に値を確認するとわかりやすいです。


testform.php

<?PHP
print $_POST[textfield];
exit;
?>

<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=Shift_JIS">
<title>フォームテスト</title>
</head>
<body>
<formname="form1" method="post" action="testform.php">
<inputtype="text" name="textfield">
<inputtype="submit" name="Submit" value="送信">
</form>
</body>
</html>

※フォームの値を表示するだけなら、たったこれだけでできます。

formtest.htmlには、一行分のテキストエリアと、送信ボタンだけがあり、何か入力してボタンを押すと、入力した値が表示されたページになります。


■フォーム作成の注意

上記のsample等でもわかるように、フォームからの値はフォームのNameプロパティをKEYとした連想配列に格納されますので、Nameプロパティの名前が重複した場合、連想配列のKEYに重複は認められないため、後に記載した内容のみ有効になります。

チェックボックスのような複数選択可が当たり前な物はName値を”check[]”といった感じで最後に'[]'(半角のかぎカッコ)を付けなければ、複数選択しても最後の値しか反映されません。name="check[]"とすると、 $_POST['check'][0],$_POST['check'][1]・・と通し番号がつけられ多次元配列に格納されます。

[sampleページ]

sampleページ:sample401_2.php のソース

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>sample:フォームテスト2</title></head>
sample:フォームテスト2<p>

<?PHP
if ($_POST){
if ($_POST[checkbox]){
foreach ($_POST[checkbox] as $val){
$checkbox .= $val. ' , ';
}
}
print <<<EOM
------------------------送信内容-----------------------------------<P>
textfield=$_POST[textfield] <P>
radiobutton=$_POST[radiobutton] <P>
checkbox= $checkbox <P>
-------------------------------------------------------------------
EOM;
}

?>

<form name="form1" method="post" action="">
<table width="300" border="0" cellpadding="4" cellspacing="0" bgcolor="#CCCCFF">
<tr><td>
<input type="text" name="textfield">
<p>
<input type="radio" name="radiobutton" value="123">123
<input type="radio" name="radiobutton" value="456">456
<input type="radio" name="radiobutton" value="789">789
<p>
<input type="checkbox" name="checkbox[]" value="abc">abc
<input type="checkbox" name="checkbox[]" value="def">def
<input type="checkbox" name="checkbox[]" value="ghi">ghi
<input type="checkbox" name="checkbox[]" value="jkl">jkl
<p>
<input type="submit" name="Submit" value="送信">
</p>
</td></tr></table></form>
</body></htm>l





※使用に関して発生した問題の責任は、一切負いませんのでご了承ください。
バグや不具合等に関しては、ご報告頂ければ善処します。

 


【TOP】


© 2005 t-eyes.com