0 レビュー
2 回答
php-多次元配列のHTMLフォームを投稿する
このようなPHP配列を取得しようとしています
array(
color => array("blue", "red", "yellow", "pink"),
size => array("small", "medium, "large"),
width => array("30", "32, "34"),
);
データは以下のようなHTMLフォームから投稿されます
<form method="post" action="post.php">
<input type="text" name="data[color][]" value="red"/>
<input type="text" name="data[color][]" value="blue"/>
<input type="text" name="data[size][]" value="small"/>
<input type="text" name="data[width][]" value="30"/>
<input type="text" name="data[width][]" value="32"/>
</form>
問題は、最後のアイテムのみが配列に投稿されることです。 配列からの出力は
です。 array(
color => array("blue"),
size => array("small"),
width => array("32"),
);
フォームに何か足りないものがありますか?
わからない
0
レビュー
答え :
解決策:
POSTを送信していません。送信ボタンを追加してください-たとえば、次のようにしてください:
<form method="post" action="">
<input type="text" name="data[color][]" value="red"/>
<input type="text" name="data[color][]" value="blue"/>
<input type="text" name="data[size][]" value="small"/>
<input type="text" name="data[width][]" value="30"/>
<input type="text" name="data[width][]" value="32"/>
<input type="submit" />
</form>
<?php
echo '<pre>';
print_r($_POST); // this will only print a filled array once submit is clicked.
送信がクリックされなかった場合に表示されます:
Array
(
)
そしてこれがあった場合:
Array
(
[data] => Array
(
[color] => Array
(
[0] => red
[1] => blue
)
[size] => Array
(
[0] => small
)
[width] => Array
(
[0] => 30
[1] => 32
)
)
)
post.phpファイル-フォームを送信せずにこのデータが入力行に残るため、まったく別の配列を印刷している可能性があります。次のように印刷する必要があります:$ _ POST;例のようにあります。
送信ボタンなしでそこに到達する方法は私を超えています...:)
わからない
0
レビュー
答え :
解決策:
まだ何が欲しいのかわかりませんが、これはどうですか:
foreach($_POST["data"] as $row => $data)
{
echo("$row = " . implode(", ", $data) . PHP_EOL);
}
生成されます:
color = red, blue
size = small
width = 30, 32
または
$_POST配列をJSONエンコードするだけです。これにより、配列が文字列に変換されます。後でJSONデコードして、配列に戻すことができます。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。