-2

我正在创建一个 php 驱动的购物车作为任务的一部分。所有产品当前都存储在一个数组中(我知道它们实际上会存储在数据库中,但是对于此任务,它不是必需的)

我想知道是否可以通过单击链接将项目添加到购物车,单击继续后,它将带用户进入摘要屏幕,显示每个项目的成本(从数组中显示的值)和总成本所有项目。

我还希望包括一个促销代码输入框,是否可以计算并显示按钮点击折扣,例如“更新”

到目前为止,我只将产品显示在一张还可以的表格中,购物车部分和折扣部分现在让我感到困惑。

<?php
$Item1 = array('SKU'=>test1, 'name'=>ProductTest1, 'Price'=>10.00);
$Item2 = array('SKU'=>test2, 'name'=>ProductTest2, 'Price'=>11.00);
$Item3 = array('SKU'=>test3, 'name'=>ProductTest3, 'Price'=>12.00);

?>

<html>
<head>
<link rel="stylesheet" type="text/css" href="Style.css">
</head>
<body>
<div id="container">
<div id="main">
<table>
<tr>
<th>SKU</th>
<th>Name</th>
<th>Price</th>
<th>Action</th>
</tr>
<tr>
<td><?php echo $Item1[SKU]; ?></td>
<td><?php echo $Item1[name]; ?></td>
<td><?php echo '£'. number_format($Item1[Price],2); ?></td>
<td><a href=#>Add To Cart</a></td>
</tr>
<tr>
<td><?php echo $Item2[SKU]; ?></td>
<td><?php echo $Item2[name]; ?></td>
<td><?php echo '£'. number_format($Item2[Price],2); ?></td>
<td><a href=#>Add To Cart</a></td>
</tr>
<tr>
<td><?php echo $Item3[SKU]; ?></td>
<td><?php echo $Item3[name]; ?></td>
<td><?php echo '£'. number_format($Item3[Price],2); ?></td>
<td><a href=#>Add To Cart</a></td>
</tr>
</table>
<input id="Proceed" type="Submit" value="Proceed">
</div>
</div>
</body>
</html>
4

2 回答 2

1

您的第一个停靠点是查看会话(http://www.w3schools.com/php/php_sessions.asp

您的“添加到购物车”链接将转到另一个 PHP 页面,因此它可能是 addtocart.php

每个“添加到购物车”链接都将通过 SKU/产品 ID,因此每个链接都有一个唯一的 GET 参数 - 即 addtocart.php?sku=test1 - 这样您就知道要添加到购物车的产品。

我已经阅读了谷歌的一些教程,比如http://jameshamilton.eu/content/simple-php-shopping-cart-tutorial?PHPSESSID=99d373741727e3010a32319f1ebed001

如果您仍然遇到问题,请将您的问题分解为具体点,我相信有人会提供帮助。

有关创建没有数据库的购物车的信息,请参阅没有 SQL 的简单 PHP 购物车。

于 2013-06-11T23:01:46.257 回答
0

起初,这不是像这样使用数组的好方法。尝试这个:

<?php
$products = array(
    array('SKU'=>test1, 'name'=>ProductTest1, 'Price'=>10.00),
    array('SKU'=>test2, 'name'=>ProductTest2, 'Price'=>11.00),
    array('SKU'=>test3, 'name'=>ProductTest3, 'Price'=>12.00),
);

?>

<html>
<head>
<link rel="stylesheet" type="text/css" href="Style.css">
</head>
<body>
<div id="container">
<div id="main">
<table>
<tr>
<th>SKU</th>
<th>Name</th>
<th>Price</th>
<th>Action</th>
</tr>
<?php foreach ($products as $key => $product): ?>
<tr>
<td><?php echo $product['SKU']; ?></td>
<td><?php echo $product['name']; ?></td>
<td><?php echo '£'. number_format($product['Price'],2); ?></td>
<td><a href="#">Add To Cart</a></td>
</tr>
<?php endif; ?>
</table>
<input id="Proceed" type="Submit" value="Proceed">
</div>
</div>
</body>
</html>

现在如何解决购物车。你必须使用一些持久的东西。会话将是最简单的:

<?php
session_start();
$products = array(
    array('SKU'=>test1, 'name'=>ProductTest1, 'Price'=>10.00),
    array('SKU'=>test2, 'name'=>ProductTest2, 'Price'=>11.00),
    array('SKU'=>test3, 'name'=>ProductTest3, 'Price'=>12.00),
);

if (isset($_GET['action'] && $_GET['action'] === 'addToCart') {
   if (!isset($_SESSION['cart']) $_SESSION['cart'] = array();
   $_SESSION['cart'][] = $_GET['product'];
}

?>

<html>
<head>
<link rel="stylesheet" type="text/css" href="Style.css">
</head>
<body>
<div id="container">
<div id="main">
<?php if (isset($_SESSION['cart']) && !empty($_SESSION['cart'])): ?>
<ul id="cart">
<?php foreach($_SESSION['cart'] as $product): ?>
   <li><?= $products[$product]['name'] ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>

<table>
<tr>
<th>SKU</th>
<th>Name</th>
<th>Price</th>
<th>Action</th>
</tr>
<?php foreach ($products as $key => $product): ?>
<tr>
<td><?php echo $product['SKU']; ?></td>
<td><?php echo $product['name']; ?></td>
<td><?php echo '£'. number_format($product['Price'],2); ?></td>
<td><a href="?action=addToCart&product=<?php echo $key ?>">Add To Cart</a></td>
</tr>
<?php endif; ?>
</table>
<input id="Proceed" type="Submit" value="Proceed">
</div>
</div>
</body>
</html>

它应该工作。只是调整你的代码。

于 2013-06-11T23:07:01.900 回答