Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将项目从阵列添加到购物车_Php_Html - Fatal编程技术网

Php 将项目从阵列添加到购物车

Php 将项目从阵列添加到购物车,php,html,Php,Html,作为任务的一部分,我正在创建一个php驱动的购物车。 所有产品当前都存储在一个数组中(我知道它们实际上会存储在一个数据库中,但是对于这个任务,它不是必需的) 我想知道是否可以通过单击链接将项目添加到购物车,单击“继续”后,用户将进入摘要屏幕,显示每个项目的成本(从数组中显示的值)和所有项目的总成本 我还希望包括一个促销代码输入框,是否可以计算和显示按钮点击折扣,如“更新” 到目前为止,我只有一个表中显示的产品,这是确定的,购物车部分是困惑我的时刻,以及折扣部分 <?php $Item1 =

作为任务的一部分,我正在创建一个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>

SKU
名称
价格
行动

您的第一个呼叫端口将是查看会话()

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

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

我读过谷歌的一些教程,比如

如果你仍然有困难,把你的问题分解成具体的问题,我相信有人会帮助你


请参阅,了解如何创建没有数据库的购物车。

首先,这样使用数组不是一个好方法。试试这个:

<?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>

SKU
名称
价格
行动
现在如何解决购物车。你必须使用持久性的东西。会议将是最简单的:

<?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>

你被困在哪里了?听起来你需要为自己编写大量的代码。你的问题非常笼统,无法回答。考虑到SO不是一项编程服务。互联网上有很多编程教程,它们将展示如何实现您想要的目标。我将在以下方面为您提供帮助:您将需要
$\u SESSION
,以及我们帮助解决问题的AJAX调用(看看jQuery)。没有人会做你的工作。我不希望代码摆在我面前,我想知道是否有可能临时将项目存储在php中,以便在单击“继续”时显示。如果还可以通过点击按钮,从数据库或文本文件调用折扣函数来更新总值,非常感谢您明智的回答!出于好奇,是否认为购物车与产品出现在同一页面上是不合适的,或者php不能动态计算?如果我理解,则不能100%确定,但我建议将购物车与产品放在不同的页面上。一旦你将物品添加到购物车中,你就可以通过标题重定向()重定向回你刚才所在的页面哦,哇,非常感谢!在筛选其他代码时,我刚刚添加了foreach循环,并且添加了一个产品,列表中的第一个是SKU test3,有没有办法先显示test1,然后显示test2,test3?您可以根据php提供的函数之一对数组进行排序。例如
usort
,请查看文档。通过这个,你可以指定你想要的每一个订单。这允许我回显每个数组吗?这是目前的问题