我有这段代码:
<form method="POST" action="checkoutManager.php" name="submitOrder">
<?php
if(isset($_SESSION["cart_item"])) {
$item_total = 0;
$total;
foreach ($_SESSION["cart_item"] as $item) {
$item_total += (($item["price"]-$item["discount"])*$item["quantity"]);
$total = $total + $item_total;
?>
<tr>
<td class="product-name">
<?php echo $item["name"]; ?> <strong class="product-qty"> × <?php echo $item["quantity"]; ?></strong>
</td>
<td class="product-total">
<span class="amount"><?php echo "$".$item_total; ?></span>
</td>
</tr>
<?php
$item_total = 0;
}
}
?>
<input type="submit" name="btnSubmitOrder" value="Submit Order">
</form>
如何使用表单标记提交所有$ _SESSION项目。我尝试过提交数组但失败了。所有帮助赞赏。提前致谢
答案 0 :(得分:2)
为什么不创建像
这样的隐藏元素<input type="hidden" name="total" value="<?php echo $total; ?>">
并且您需要的任何内容都使用隐藏的输入字段,您可以在 checkoutManager.php
中使用$_POST
点击提交按钮后访问它们
<强>更新强>
只需使用会话处理 checkoutManager.php 中的所有字段,您就不需要提交任何表单。创建指向 checkoutManager.php 的链接并在那里进行所有计算
答案 1 :(得分:0)
尝试以下代码。 在这段代码中,我添加了一个隐藏计数字段。 通过使用count你可以在提交后使用for循环。 我只显示一个输入的名称,但你可以在窗体的循环中添加多个输入。 我还汇总了$ i变量,因此所有输入名称都不同,如name1,name2,...在提交后,U可以在提交时使用它作为$ _POST [&#39; name&#39;。$ i]。
<form method="POST" action="checkoutManager.php" name="submitOrder">
<?php
<input type="hidden" name="count" value="<?php echo count($_SESSION["cart_item"]); ?>">
$i=0;
foreach ($_SESSION["cart_item"] as $item)
{
?>
<input type="text" name="input_name<?php echo $i; ?>" value="<?php echo $item['name']; ?>" />
<?php
$i++;
}
?>
<input type="submit" name="btnSubmitOrder" value="Submit Order">
</form>
&#13;
答案 2 :(得分:0)
您需要在$_SESSION["cart_item"]
循环中为foreach
中的所有商品添加输入字段。提交后,您需要再次使用<form method="POST" action="checkoutManager.php" name="submitOrder">
<?php
if(isset($_SESSION["cart_item"])) {
$item_total = 0;
$total = 0;
foreach ($_SESSION["cart_item"] as $item) {
$item_total +=
(($item["price"]-$item["discount"])*$item["quantity"]);
$total = $total + $item_total;
?>
<input type="hidden" name="price[]" value="<?php echo $item["price"]; ?>">
<input type="hidden" name="name[]" value="<?php echo $item["name"]; ?>">
<input type="hidden" name="discount[]" value="<?php echo
$item["discount"]; ?>">
<input type="hidden" name="quantity[]" value="<?php echo
$item["quantity"]; ?>">
<tr>
<td class="product-name">
<?php echo $item["name"]; ?> <strong class="product-qty"> × <?php
echo $item["quantity"]; ?></strong>
</td>
<td class="product-total">
<span class="amount"><?php echo "$".$item_total; ?></span>
</td>
</tr>
<?php
$item_total = 0;
}
}
?>
<input type="submit" name="btnSubmitOrder" value="Submit Order">
</form>
逐个插入临时表中的所有项目。
更新您的代码,如下所示:
foreach($_POST['name'] as $key => $val){
echo $_POST['name'][$key];
echo $_POST['price'][$key];
echo $_POST['discount'][$key];
echo $_POST['quantity'][$key];
}
您可以通过以下方式在提交后访问所有输入字段。
for(String skey: slist){
map.put(skey,yourLongValue); //Enter any Long value you desire or create a method which gets value dynamically like getLongValue()
}
希望它有所帮助!