2011-11-24 200 views
0

我使用​​示例使用PHP创建添加到购物车页面。 2页的PHP代码在这里:

http://jameshamilton.eu/sites/default/files/products.php_.txt

http://jameshamilton.eu/sites/default/files/cart.php_.txt

在购物车页面,我创建了一个量的输入框,并试图更新每个项目数量的更新链接。示例said的作者需要做些什么,以便更新数量。但是,我在这样做时遇到了麻烦。

我不确定如何使用用户在购物车页面中的数量框中输入的内容更新存储在$ _SESSION ['cart']中的数量。我假设switch语句中必须存在一些代码:update,以便更新链接调用action:update来更新每个项目的数量。

有人可以告诉我要使用什么代码,以便更新$ _SESSION ['cart'],使用this示例?我试图联系这个例子的作者,但他从来没有回应。

更新:这是我使用的代码的相关部分:

https://soc.uwl.ac.uk/~21099475/code.txt

+1

你发布的例子工作正常。 向我们显示您的代码,以找出发生了什么问题。 – Khronos

+0

我给了代码。 –

回答

-1

无法更新会话,但你可以下面的逻辑使用。

首先你取消设置会话

unset($_SESSION['cart']['product_id']); //don't unset session,unset only quantity session 

现在创建一个会话

$_SESSION['cart']['product_id'] = 4; //updated value 
+0

你在说什么?当然你可以更新会话值。你不需要解除它。如果你打算发布答案,请至少了解你在说什么。谢谢 – Flukey

1

,因为有可能是要更新的,你需要一个表单来做到这一点不止一个产品。 这是一个例子,了解你必须做的事情。

<form action="<?php echo $_SERVER[PHP_SELF]?>?action=update" method="post"> 
    <input type="text" name="quantity[2]" value="3" /> 
    <input type="text" name="quantity[3]" value="2" /> 
    <input type="text" name="quantity[4]" value="1" /> 
    <button type="submit" name="submit">Update</button> 
</form> 

表单提交后,您必须检查已发布的数量并增加或减少它们。

if(!empty($_POST['quantity'])) { 
     foreach($_POST['quantity'] as $productID => $quantity) { 
      if(!empty($_SESSION['cart'][$productID])) { 
       $quantity = intval($quantity); 
       if($quantity > 0) { 
        $_SESSION['cart'][$productID] = $quantity; 
       } 
       else { 
        unset($_SESSION['cart'][$productID]); 
       } 
      } 
     } 
    } 

我想这个例子会让你继续。

+0

感谢您的代码。当我尝试更新某个项目的数量时,会出现foreach循环的错误消息。尝试在此处添加购物车:http://21099475.site90.com/buyNow.php 然后使用更新按钮更新数量,然后会出现错误。 已更新的php代码在这里https://soc.uwl.ac.uk/~21099475/code.txt –

+0

再次检查我的示例(html)。您应该将输入的名称属性更改为数组。 例如数量[2],其中2是产品的ID。 – Khronos

+0

你还应该记住,这只是一个指示性的例子,让你开始。您应该添加额外的安全性(检查用户输入,检查产品是否真实存在等) – Khronos