データベースからたくさんの情報を取得して、フォームに編集できるように並べて、フォームでたくさんのデータを配列にして送信後、配列で受け取ることをしていきたいと思います。6月29日

イメージ

ID カラム1 カラム2
1 テキストエリアのフォーム1 テキストエリアのフォーム1
2 テキストエリアのフォーム2 テキストエリアのフォーム2
3 テキストエリアのフォーム3 テキストエリアのフォーム3




送信ボタン



目次



送信側

データベースから引っ張ってきて、フォームにどんどんと格納していきます。データベースはEUC-JPの文字コードなので、ところどころでmb_convert_encodingしています。

<?php
$dsn = 'mysql:dbname='.DB_NAME.';host='.DB_HOST.';port='.DB_PORT.'';
$user = DB_USER;
$password = DB_PASSWORD;
		
try{
	$dbh = new PDO($dsn, $user, $password);
	}catch (PDOException $e){
	print('Connection failed:'.$e->getMessage());
 	die();
}
		
	
$sql = "SELECT * FROM table_name";
$stmt = $dbh->query($sql);
			
print '<form action="confirm.php" method="post">';
print '<table><tr><th>ID</th><th>カラム1</th><th>カラム2</th></tr>';
			
while($result = $stmt->fetch(PDO::FETCH_ASSOC)){	
print '<input type="hidden" name="['.mb_convert_encoding($result["id"],"UTF-8","EUC-JP").'][id]">';		
print '<tr>';
print '<td>'.mb_convert_encoding($result["id"],"UTF-8","EUC-JP").'</td>';
print '<td><textarea name="hoge['.mb_convert_encoding($result["id"],"UTF-8","EUC-JP").'][column1]" cols="20" rows="2">'.nl2br(htmlspecialchars(mb_convert_encoding($result["column1"],"UTF-8","EUC-JP"),ENT_QUOTES,"UTF-8")).'</textarea></td>';
print '<td><textarea name="hoge['.mb_convert_encoding($result["id"],"UTF-8","EUC-JP").'][column2]" cols="20" rows="2">'.nl2br(htmlspecialchars(mb_convert_encoding($result["column2"],"UTF-8","EUC-JP"),ENT_QUOTES,"UTF-8")).'</textarea></td>';
print '</tr>';
}
print '</table><input type="submit" name="submit" value="確認"></form>';
?>



受け取り側

まずは、var_dumpで受け取りましょう。

<?php
var_dump($_POST);
?>



まとめ

配列の送信が苦手という人はPOSTで受け取ったのをとりあえず表示させてみることをまずは行ってみるといいと思います。

以上

最終更新:2015年10月02日 22:43