在PHP中,我有一个数组。我想将数组中的所有值发送到下一页(result.php)。当我在$ _POST中收到值时,是否可以照原样在数组中获取它们? (或者我只能单独或连接获取数组的值,然后再重新生成数组?)
我尝试了以下代码,但是它仅连接数组中的值,因此并不令人满意。
请让我知道哪种方法都是最佳实践。当然,我更喜欢保持原始数组不变!
谢谢!
<form class="form_container validationForm" action="result.php" method="post">
<input type="hidden" name="targetobject[]" value="
<?php $postvalue = array("Volvo", "BMW", "Toyota"););
foreach($postvalue as $value){echo $value;}
?>
">
<input type="text" class="form-control validationInput" name="search" placeholder="Type a search keyword"><br><button class="btn btn-primary" type="submit">Search</button></div></form>
//The following is result.php
<?php $targetobject = $_POST['targetobject'];
echo var_dump($targetobject);
?>
array(3){ [0] => string(5)“沃尔沃” [1] => 字符串(3)“宝马” [2] => 字符串(6)“丰田” }
答案 0 :(得分:1)
您需要将每个值放在一个单独的隐藏input
中,其名称包含[]
。试试这个:
<form class="form_container validationForm" action="result.php" method="post">
<?php $postvalue = ["Volvo", "BMW", "Toyota"]; ?>
<?php foreach ($postvalue as $val) : ?>
<input type="hidden" name="targetobject[]" value="<?php echo $value; ?>">
<?php endforeach; ?>
</form>
<input type="text" class="form-control validationInput" name="search" placeholder="Type a search keyword"><br><button class="btn btn-primary" type="submit">Search</button></div></form>
//The following is result.php
<?php $targetobject = $_POST['targetobject'];
echo var_dump($targetobject);
?>
答案 1 :(得分:1)
或字母较少:
<?php $postvalue = array("Volvo", "BMW", "Toyota"); ?>
<form class="form_container validationForm" action="result.php" method="post">
<input type="hidden" name="targetobject" value='<?=json_encode( $postvalue ); ?>'>
<input type="text" class="form-control validationInput" name="search" placeholder="Type a search keyword"><br>
<button class="btn btn-primary" type="submit">Search</button>
</form>
//The following is result.php
<?php
$targetobject = json_decode( $_POST['targetobject'], $assoc = true );
echo var_dump($targetobject);
?>
答案 2 :(得分:1)
好吧,如果您检查上述建议的HTTP结果,您会发现它们通过重复 POST变量名以一种有组织的方式起作用。而且这种方法肯定没有错。
另一种实现方法是将数据 JSON编码作为单个字段的值发送。这种方法允许对真正任意的数据结构进行编码和表示。本质上,尽管不完全是“经典AJAX”。
所以,“选择是你的。”