2015-04-21 58 views
3

我試圖創建購物車樣式網站。我可以通過將產品設置爲課程並將其傳遞到我的購物車頁面來展示產品。但是,我需要將產品列表保存到會話中,以便我可以添加或清除添加到購物車中的每個項目。在會話中放置一個列表並顯示每個會話

Products.php

<?php 
require_once 'class_product.php'; 
$product = new product(); 

$product_id =(int)$_GET['product_id']; //get id from home page 

$username = ""; 
$password = ""; 
$hostname = "";//blanked this out for public use 

//connection to the database 
    $dbhandle = mysql_connect($hostname, $username, $password) 
    or die("Unable to connect to MySQL"); 


//select a database to work with 
    $selected = mysql_select_db("poti",$dbhandle) 
    or die("Could not select examples"); 

//execute the SQL query and return records 
    $result = mysql_query("SELECT * FROM products where product_id=$product_id"); 

    echo '<form name="form1" method="post" action="cart.php" target="bottom_right">'; 
    echo '<table class="Grocery-table">'; 

    while($row = mysql_fetch_array($result)) 

{ 
    $product->setProductId($row['product_id']); 
    $product->setProductName($row['product_name']); 
    $product->setStock($row['in_stock']); 
    $product->setUnitPrice($row['unit_price']); 
    $product->setUnitQuantity($row['unit_quantity']); 
} 
    $_SESSION['product'] = serialize($product); 

    echo "<tr><td><b>Product ID</b></td>"; 
    echo "<td>"; 
    echo $product->getProductId(); 
    echo "</td></tr>"; 
    echo "<tr><td><b>Product Name</b></td>"; 
    echo "<td>"; 
    echo $product->getProductName(); 
    echo "</td></tr>"; 
    echo "<tr><td><b>Unit Price</b></td>"; 
    echo "<td>"; 
    echo $product->getUnitPrice(); 
    echo "</td></tr>"; 
    echo "<tr><td><b>Unit Quantity</b></td>"; 
    echo "<td>"; 
    echo $product->getUnitQuantity(); 
    echo "</td></tr>"; 
    echo "<tr><td><b>In Stock</b></td>"; 
    echo "<td>"; 
    echo $product->getStock(); 
    echo "</td></tr>"; 
    echo '<tr><td><b>Add</b></td><td><Input type="number" min="0" id="add_value" name="cart"></input> 
    <Input type="hidden" id="stock_value" name="stock_value" value ='.trim($product->getStock()).'></input></td></tr>'; 
    echo '<tr><td></td><td><input type="submit" value="Submit" onclick="return numCheck()"></td></tr>'; 

    echo "</table>"; 
    echo "</form>"; 
?> 

cart.php

<?php 
session_start(); 
?> 
<html> 

<style type="text/css"> 
</style> 

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>My Grocery Store</title> 
</head> 
<body> 
<h2>Cart</h2> 

<?php 
require_once 'class_product.php'; 

$product = unserialize($_SESSION['product']); 
//this allows me to see the information when i click submit 
echo $product->getProductName(); 
echo $product->getProductId(); 
echo $product->getStock(); 
echo $product->getUnitPrice(); 
echo $_POST['cart']; 
?> 

</body> 
</html> 

我如何把下面的$產品 - > getProductName()等爲會話,讓我展示所有我添加到購物車中的產品。

回答

1

試試這個,

session_start(); 
    $_SESSION['ProductName'] = $product->getProductName(); 
    $_SESSION['ProductId'] = $product->getProductId(); 
    $_SESSION['Stock'] = $product->getStock(); 
    $_SESSION['UnitPrice'] = $product->getUnitPrice(); 

多個產品,您可能需要使用會話的數組。

<?php 
session_start(); 
if(!isSet($_SESSION['cart_items'])) 
{ 
    $_SESSION['cart_items'] = array(); 
} 

$items =$product->getProductName()."|".$product->getProductId()."|".$product- 
>getStock()."|".$product->getUnitPrice(); 

array_push($_SESSION['cart_items'],$items); 

echo $_SESSION['cart_items'][0]; //First Product 
echo "<br>"; 
echo $_SESSION['cart_items'][1]; //Second Product 



?> 
+0

這個作品 - 但我想在一個表中顯示多個產品 - 即..我想從一個表 – JavaHater

+0

添加和刪除產品我不知道它是否是最簡單的方法還是不行,但你可以試試我的答案,我已經更新了它。 –

+0

要移除產品,只需在會話數組中映射產品的位置並移除該產品。以數組長度爲例,您將獲得動態添加的產品數量。 –