2011-11-24 98 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