HTMLフォーム : PHP


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.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。