用PHP会话更新购物车

时间:2017-05-22 10:45:11

标签: php session

我正在尝试更新我的购物车数量,我的产品显示为foreach循环。所以,我尝试通过此代码更新它,它工作但仅适用于addtocart提交中选择的第一个项目。问题是什么 ?如何在一个更新按钮上单击每个项目进行更新?

if (isset($_POST["quansub"]) ){

    $itq = $_POST["itq"];
    $_SESSION["itq"] =  $itq;
    $_SESSION["incart"][$select]["item_quantity"]= $_SESSION["itq"];

    header("location:selecteditems.php");
}

1 个答案:

答案 0 :(得分:0)

这是你想要的那种吗?

我建议购物车中的每件商品都有这样的内容:

<input type='hidden' name='quantity[1]' id='quantity[1]'>
<input type='hidden' name='quantity[2]' id='quantity[2]'>

foreach($_POST['item'] AS $key=>$value){
    $qty = $_POST["quantity"][$key];
    $_SESSION["quantity"][$key] =  $qty;
    $_SESSION["incart"][$select]["item_quantity"]= $_SESSION["quantity"][$key];
}

如果您有“$ select”,请使用它来执行以下操作:

<input type="text" name="itq[<?= $select ?>]" value="<?php echo $val["item_quantity"]; ?>"/>

然后在PHP中执行以下操作:

if (isset($_POST["quansub"] && $_POST['itq'][$select])){
    $_SESSION["incart"][$select]["item_quantity"] = $_POST["itq"][$select];
}

将此代码移到foreach循环之外:

if (isset($_POST["quansub"])){
    header("location:selecteditems.php");
}

拥有“数量[1],数量[2]”等......可以很容易地循环输入值并输出它们的值。将多个项目存储到使用相同名称的数据库时,这非常有用。

赋予名称唯一的“密钥”也意味着您可以确定它们在数据库中的位置,也可以通过使用其数据库或产品ID为其提供“密钥”。

如果您希望我解释个别部分,请告诉我。