首页 > 解决方案 > 使用表单传递数组和用户输入

问题描述

我在处理传递数组的表单时遇到了困难。我在一个名为 $product 的数组中包含了 5 个变量(“$a,$b,$c,$d,$e”),然后我将它与需要用户输入值的输入一起传递给另一个框架使用表单. 所以会同时传递一个数组和一个输入。那么我应该使用“post”还是“get”?看来我应该使用“post”来传递数组,但用户输入只能通过“get”来传递,对吗?以下是我的代码(表格在表格内):

print "<td><form class=button action='bottom_right.php' method='post' target='bottom_right'>
        <input type='text' name='quantity'>
        <input type='hidden' name='product' value='<?php echo($product) ?>'>
        <button type='submit' class='btn btn-primary mb-2'>Add</button>
      </form></td>";

此外,我怎样才能从另一个框架中检索内容?应该像下面这样吗?如何从数组中回显单个变量?

<?php  
session_start();
$quantity=$_POST['quantity'];
$product=$_POST['product'];
echo $quantity;
echo $product['a'];
echo $b;
?>

期待您的回复!干杯!

标签: php

解决方案


可能就像使用爆炸/内来传输阵列一样简单。

<input type='hidden' name='product' value='<?= implode(',', $product) ?>' />

然后在 PHP 中,您将在键下寻找一串集中值product

<?php  

$quantity = (isset($_POST['quantity'])) $_POST['quantity'] ? : null;
$product = (isset($_POST['product'])) $_POST['product'] ? : '';
$productArray = explode(',', $product);

var_dump($productArray);

您可以使用 POST 或 GET。您可以将数组转换为字符串,使用分隔符来标记各个部分,或者您可以使用多个隐藏字段,数组中的每个值对应一个。

<!-- would probably POST if going this route...? -->
<input type='hidden' name='product[a]' value='<?= $product['a'] ?>' />
<input type='hidden' name='product[b]' value='<?= $product['b'] ?>' />

玩弄它并使用它var_dump($_POST);来了解这些方法如何修改您收到的内容。


推荐阅读