PHPでHTMLフォームを処理する覚書。
HTMLフォームからの入力を処理する簡単なサンプルコード
<html xmlns="http://www.w3.org/1999/xhtml " xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<title>フォームのサンプル</title>
</head>
<body>
<h1>HTMLフォーム</h1>
<form action="" method="post">
<!-- 隠しフィールド -->
<input type="hidden" name="fmhidden" value="hiddenvalue" />
<!-- テキスト -->
テキスト <input type="text" name="fmtext" /><br />
<!-- テキストエリア -->
<textarea name="fmtextarea" rows="2" cols="30" />テキストエリア</textarea><br />
<!--ラジオボタン -->
<input type="radio" name="fmradio" value="rb1" />ラジオボタン1
<input type="radio" name="fmradio" value="rb2">ラジオボタン2<br />
<!-- チェックボックス -->
<!-- name属性がfmcheckbox[]に注意 チェックされ値のみ配列に格納されていく -->
<input type="checkbox" name="fmcheckbox[]" value="chex1" />チェックボックス1
<input type="checkbox" name="fmcheckbox[]" value="chex2"/>チェックボックス2
<input type="checkbox" name="fmcheckbox[]" value="chex3"/>チェックボックス3<br />
<!-- プルダウンメニュー -->
<select name="fmpuldown">
<option value="menu1">メニュー1</option>
<option value="menu2">メニュー2</option>
<option value="menu3">メニュー3</option>
</select><br />
<!-- リストボックス -->
<!-- name属性がfmlist[]に注意 multiple属性が指定されたため -->
<!-- 選択された値のみ配列に格納されていく -->
<select name="fmlist[]" size="3" multiple="multiple">
<option value="list1">リスト1</option>
<option value="list2">リスト2</option>
<option value="list3">リスト3</option>
</select>
<!-- 送信ボタン -->
<input type="submit" name="fmsubmit" value="送信" />
</form>
<?php
// 簡略化のためセキュリティー対策は省く
// 実際には公開用のスクリプトにはセキュリティー対策を行うべき
if(isset($_POST['fmsubmit'])){ // 送信ボタンが押された場合のみ実行
// テキスト
$text = $_POST['fmtext'];
// テキストエリア
$textarea = $_POST['fmtextarea'];
// 隠しフィールド
$hidden = $_POST['fmhidden'];
// ラジオボタン
if(isset($_POST['fmradio'])){
$radio = $_POST['fmradio'];
} else {
$radio = "未チェック";
}
// チェックボックス
$check = "";
if(isset($_POST['fmcheckbox'])){
for($i=0;$i<count($_POST['fmcheckbox']);$i++) {
$check = $check . $_POST['fmcheckbox'][$i];
}
} else {
$check="未入力";
}
// セレクト プルダウン
$puldown = $_POST['fmpuldown'];
// セレクトリストボックス
$list = "";
if(isset($_POST['fmlist'])){
for($i=0;$i<count($_POST['fmlist']);$i++) {
$list = $list . $_POST['fmlist'][$i];
}
} else {
$list = "未選択";
}
$html = <<< HTML
<table border="1">
<tr><th>種類</th><th>値</th></tr>
<tr><td>隠しフィールド</td><td>{$hidden}</td></tr>
<tr><td>テキスト</td><td>$text</td></tr>
<tr><td>テキストエリア</td><td>$textarea</td></tr>
<tr><td>ラジオボタン</td><td>$radio</td></tr>
<tr><td>チェックボックス</td><td>$check</td></tr>
<tr><td>プルダウン</td><td>$puldown</td></tr>
<tr><td>リスト</td><td>$list</td></tr>
HTML;
print($html);
} else { // 送信ボタンが押されていない場合
print("値を入力して送信ボタンを押してください。");
}
?>
</body>
</html>
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。