HTMLのformで配列をPOSTする方法
HTMLのformを使って配列データをPOSTする方法について説明します。
配列データを送信する場合、HTMLのform要素とJavaScriptを組み合わせて扱うことが一般的です。
以下に、具体的な方法を示します。
配列データのPOST方法
HTMLのformで配列データを送信するには、以下の手順に従います。
1. HTMLのform要素を作成する
form要素には、action属性でデータ送信先のURL、method属性でHTTPメソッド(通常はPOST)を指定します。
配列データを送信するためには、各入力フィールドのname属性を配列の形式に設定します。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Post Array Data</title> </head> <body> <form id="myForm" action="/submit" method="POST"> <input type="text" name="items[0]" value="Item 1"> <input type="text" name="items[1]" value="Item 2"> <input type="text" name="items[2]" value="Item 3"> <button type="submit">Submit</button> </form> </body> </html>
上記の例では、itemsという名前の配列がPOSTリクエストで送信されます。
各入力フィールドのname属性にitems[0], items[1], items[2]のようにインデックスを指定しています。
2. JavaScriptを使用して配列を動的に生成する
HTMLのformで配列を動的に生成する場合、JavaScriptを使って入力フィールドを追加する方法があります。
以下は、ボタンをクリックすると入力フィールドが追加される例です。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Post Array Data</title> <script> function addInput() { const container = document.getElementById('inputContainer'); const index = container.children.length; const input = document.createElement('input'); input.type = 'text'; input.name = `items[${index}]`; input.placeholder = `Item ${index + 1}`; container.appendChild(input); } </script> </head> <body> <form id="myForm" action="/submit" method="POST"> <div id="inputContainer"> <!-- 動的に追加される入力フィールドがここに入る --> </div> <button type="button" onclick="addInput()">Add Input</button> <button type="submit">Submit</button> </form> </body> </html>
この例では、「Add Input」ボタンをクリックすると、items配列の新しい入力フィールドが追加されます。
name属性にはitems[0], items[1], items[2]とインデックスが付与され、配列データとして送信されます。
POSTリクエストの処理
サーバー側で受け取ったデータは、リクエストのボディに含まれる配列データとして処理できます。
例えば、PHPを使用して配列データを受け取る場合の例は以下の通りです。
<?php // 配列データを受け取る $items = $_POST['items']; // 配列の内容を確認する foreach ($items as $item) { echo htmlspecialchars($item) . '<br>'; } ?>
上記のPHPスクリプトでは、$_POST['items']で送信された配列データを取得し、foreachループでその内容を表示しています。
htmlspecialchars関数を使って、HTML特殊文字をエスケープしています。
これで、HTMLのformを使って配列データをPOSTする基本的な方法がわかります。
必要に応じて、JavaScriptやサーバーサイドのスクリプトを使ってデータを柔軟に扱うことができます。