使用表单传递数组和用户输入

时间:2018-05-14 16:39:05

标签: php

我在处理传递数组的表单时遇到了困难。我在一个名为$ product的数组中包含了5个变量(" $ a,$ b,$ c,$ d,$ e"),然后我将它传递给另一个框架使用形式以及需要的输入用户输入值。 所以会有一个数组和一个输入同时传递。我应该使用" post"或"得到"?我似乎应该使用" 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;
?>

期待您的回复! 干杯!

1 个答案:

答案 0 :(得分:0)

可能就像使用explode / implode来传输数组一样简单。

<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);来了解这些方法如何修改您收到的内容。