使用HTML的POST $ _SESSION变量

时间:2017-11-24 05:15:25

标签: php html arrays session post

希望你们都做得很好。我不太确定我的标题如何,所以我很抱歉。

我有这段代码:

<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项目。我尝试过提交数组但失败了。所有帮助赞赏。提前致谢

3 个答案:

答案 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]。

&#13;
&#13;
<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;
&#13;
&#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()
}

希望它有所帮助!