【问题标题】:Passing a multidimensional array through hidden input via POST通过 POST 通过隐藏输入传递多维数组
【发布时间】:2017-12-07 13:39:45
【问题描述】:

所以我在网上研究了如何传递一个我通过表单发布的数组。

这就是我所做的。

    $itemsArr = array();
    while ($row = $result->fetch_assoc()) {
    $totalPrice += $row['item_price'];
    $totalItemsOnCart += $row['quantity'];
    $itemId = $row['item_idPK'];
    $itemName = $row['item_name'];
    $itemPrice = $row['item_price'];
    $itemQty = $row['quantity'];
    $itemsArr[] = array($userId, $itemId, $itemQty);

    echo "<tr>";
    echo "<td>".$itemId."</td>";
    echo "<td>".$itemName."</td>";
    echo "<td>".$itemPrice."</td>";
    echo "<td>".$itemQty."</td>";
    echo "</tr>";   
    }

然后,我使用 foreach 循环遍历多维数组。

echo "<form class = 'BreadCode' action='Function_Cart.php' method='POST'>";
foreach($itemsArr as $value){
    print_r($value);
    echo '<input type="hidden" name="itemsArr[]" value="'. $value. '">';
}
    echo "<input type='hidden' name='userId' value='$userId'>";
    echo "<input type='hidden' name='itemId' value='$itemId'>";
    echo "<input type='hidden' name='quantity' value='$itemQty'>";
    echo "<input class='PayButton' type='submit' name='Btn-pay' value='Pay'>";
    echo "</form>";

对于foreach() 循环中的隐藏输入,无论是否带有echo,我都会收到“Array to string conversion”错误

过去我并没有真正尝试通过POST 方法通过表单发送array。我只是不知道该怎么做。

下面是print_r()的结果

Array ( [0] => 5112 [1] => 105 [2] => 2 ) 
Array ( [0] => 5112 [1] => 104 [2] => 1 )

请帮忙。

谢谢。

【问题讨论】:

  • 您可以将其传递为json。之前foreach&lt;input type="hidden" name="itemsArr" value="'&lt;?php echo json_encode($itemsArr ); ?&gt;. '"&gt;

标签: php arrays post multidimensional-array


【解决方案1】:

您只需要将数组编码为 json 并在操作页面上对其进行解码

echo '<input type="hidden" name="itemsArr" value="'.json_encode($itemsArr). '">';

然后在您的操作页面上解码它

$itemsArr = json_decode($_POST['itemsArr'],true)

【讨论】:

  • 谢谢。但是,我在解码时遇到了一个问题。当我尝试回显 var_dump($itemsArr) 或 print_r($itemsArr);
  • 检查元素并检查输入标签是否包含正确的 json 数据或不尝试仅打印 $_POST['itemsArr'] 是否应该打印一些内容或注释?
【解决方案2】:

不需要放置foreach,增加执行时间。您可以使用json_encode 来简单地做到这一点。

echo "<form class = 'BreadCode' action='Function_Cart.php' method='POST'>";
echo '<input type="hidden" name="itemsArr" value="' . json_encode($itemsArr) . '">';

echo "<input type='hidden' name='userId' value='$userId'>";
echo "<input type='hidden' name='itemId' value='$itemId'>";
echo "<input type='hidden' name='quantity' value='$itemQty'>";
echo "<input class='PayButton' type='submit' name='Btn-pay' value='Pay'>";
echo "</form>";

【讨论】:

  • 谢谢。只有一个问题。当我尝试 json_decode($_POST['itemsArr'],true); 时,我似乎无法获得价值它不返回任何内容或返回 null。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-25
相关资源
最近更新 更多