使用多个不同按钮在购物车中添加多个商品(加入购物车)
我是初学者。我正在开发一个电子商务网站。我的问题是,我似乎无法在我的购物车中添加多个项目。如果我点击了一件物品,它会被添加到购物车中,但是当我点击另一件物品时,它会替换我选择的第一件物品。有关我如何解决这个问题的任何建议?谢谢使用多个不同按钮在购物车中添加多个商品(加入购物车)
<!-- This is my index.html. You can browse my products here. This is just a sample of my code. It's too long. Sry. -->
<form method = "GET" action = "php/addtocartprocess.php">
<p>Price: 9,199 Php<br><input class = "btn btn-success"type = "submit" name = "add_to_cart1" value = "Add to Cart"><span class = "glyphicon glyphicon-shopping-cart"></span></p>
<p>Price: 28,890 Php<br><input class = "btn btn-success"type = "submit" name = "add_to_cart2" value = "Add to Cart"><span class = "glyphicon glyphicon-shopping-cart"></span></p>
<p>Price: 46,995 Php<br><input class = "btn btn-success"type = "submit" name = "add_to_cart3" value = "Add to Cart"><span class = "glyphicon glyphicon-shopping-cart"></span></p></form>
<?php
// this is my php code. I don't know if it right or not
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
$connection = mysql_connect("localhost", "root", "");
if(isset($_GET['add_to_cart1'])){
\t $_SESSION['prod_id'] = 1;
\t header("location: ../android.php");
}
if(isset($_GET['add_to_cart2'])){
\t $_SESSION['prod_id'] = 2;
\t header("location: ../android.php");
}
if(isset($_GET['add_to_cart3'])){
\t $_SESSION['prod_id'] = 3;
\t header("location: ../android.php");
}
if(isset($_GET['add_to_cart4'])){
\t $_SESSION['prod_id'] = 4;
\t header("location: ../android.php");
}
if(isset($_GET['add_to_cart5'])){
\t $_SESSION['prod_id'] = 5;
\t header("location: ../android.php");
}
if(isset($_GET['add_to_cart6'])){
\t $_SESSION['prod_id'] = 6;
\t header("location: ../android.php");
}
if(isset($_GET['add_to_cart7'])){
\t $_SESSION['prod_id'] = 7;
\t header("location: ../android.php");
}
if(isset($_GET['add_to_cart8'])){
\t $_SESSION['prod_id'] = 8;
\t header("location: ../android.php");
}
if(isset($_GET['add_to_cart9'])){
\t $_SESSION['prod_id'] = 9;
\t header("location: ../android.php");
}
if(isset($_GET['add_to_cart10'])){
\t $_SESSION['prod_id'] = 10;
\t header("location: ../iphone.php");
}
if(isset($_GET['add_to_cart11'])){
\t $_SESSION['prod_id'] = 53;
\t header("location: ../iphone.php");
}
if(isset($_GET['add_to_cart12'])){
\t $_SESSION['prod_id'] = 54;
\t header("location: ../iphone.php");
}
if(isset($_GET['add_to_cart13'])){
\t $_SESSION['prod_id'] = 55;
\t header("location: ../windows.php");
}
if(isset($_GET['add_to_cart14'])){
\t $_SESSION['prod_id'] = 56;
\t header("location: ../windows.php");
}
if(isset($_GET['add_to_cart15'])){
\t $_SESSION['prod_id'] = 57;
\t header("location: ../windows.php");
}
if(isset($_GET['add_to_cart16'])){
\t $_SESSION['prod_id'] = 58;
\t header("location: ../smartwatch.php");
}
if(isset($_GET['add_to_cart17'])){
\t $_SESSION['prod_id'] = 59;
\t header("location: ../smartwatch.php");
}
if(isset($_GET['add_to_cart18'])){
\t $_SESSION['prod_id'] = 60;
\t header("location: ../smartwatch.php");
}
if(isset($_GET['add_to_cart19'])){
\t $_SESSION['prod_id'] = 61;
\t header("location: ../computer.php");
}
if(isset($_GET['add_to_cart20'])){
\t $_SESSION['prod_id'] = 62;
\t header("location: ../computer.php");
}
if(isset($_GET['add_to_cart21'])){
\t $_SESSION['prod_id'] = 64;
\t header("location: ../computer.php");
}
$gadgets = $_SESSION['prod_id'];
mysql_close($connection);
?>
<!-- This is my cart.php code -->
<?php
include('php/userloginprocess.php'); // Includes Login Script
include('php/addtocartprocess.php');
/*$id = $_SESSION['prod_id'];*/
$gadgets = $_SESSION['prod_id'];
if($_SESSION['login'] == FALSE){
\t header("location: login.php");
}
if($_SESSION['login'] == TRUE)
?>
<?php
//connection
mysql_connect("localhost","root", "") or die(mysql_error());
//database connection
mysql_select_db("marketech_db") or die(mysql_error());
//sql query
$sql = "SELECT * FROM user_tbl";
$records=mysql_query($sql);
?>
<html>
<head>
<title> Marketech | Buy Genuine Gadgets Online </title>
<script src="js/jquery.js"></script>
<script src="js/bootstrap.js"></script>
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="shortcut icon" href="images/marketechlogo.ico" />
</head>
<body>
<!-- First Navigation Bar -->
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Marketech</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<form class="navbar-form navbar-left">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
<ul class="nav navbar-nav navbar-right">
\t \t <li><a href="#"><span class = "glyphicon glyphicon-shopping-cart"></span> Cart</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><?php echo $_SESSION ['fname']; ?><span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="useraccountsettings.php">Account Settings</a></li>
<li><a href="php/logout.php">Logout</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<!-- Second Navigation Bar -->
<br><br><br>
<div class = "container-fluid">
<nav class="navbar navbar-inverse navbar-lower">
<div class="container-fluid">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-2" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
\t <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-2">
<ul class="nav navbar-nav col-lg-12">
<li class="col-md-2"><a href="android.php">Android Phone</a></li>
<li class="col-md-2"><a href="iphone.php">iPhone</a></li>
<li class="col-md-2"><a href="windows.php">Windows Phone</a></li>
<li class="col-md-2"><a href="smartwatch.php">Smart Watch</a></li>
<li class="col-md-2"><a href="computer.php">Computers</a></li>
<li class="dropdown col-md-2"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Popular Brands <span class="caret"></span></a>
\t \t \t <ul class="dropdown-menu col-xs-2">
\t \t \t \t <li><a href="android.php#samsung">Samsung</a></li>
\t \t \t \t <li><a href="iphone.php">Apple</a></li>
\t \t \t \t <li><a href="windows.php">Microsoft</a></li>
\t \t \t \t <li><a href="android.php#sony">Sony</a></li>
\t \t \t \t <li><a href="android.php#asus">Asus</a></li>
\t \t \t </ul>
\t \t </li>
</ul>
\t </div>
</div>
</div>
</nav>
<!-- Marketechs Third Navigation (with glyphicons) -->
<div class="container">
\t <ul class="list-unstyled">
\t \t \t <li class = "col-md-3"><span class="glyphicon glyphicon-transfer"></span> 30 days Free Returns</li>
\t \t \t <li class = "col-md-3"><span class="glyphicon glyphicon-plane"></span> Free Delivery Above 999 php</li>
\t \t \t <li class = "col-md-3"><span class="glyphicon glyphicon-usd"></span> Cash on Delivery</li>
\t \t \t <li class = "col-md-3"><span class="glyphicon glyphicon-earphone"></span> Call (049) 557 2681</li>
\t </ul>
</div>
</div>
<!-- Cart -->
<div class = "container-fluid">
<form method = "GET" action = "deletecartproduct.php">
\t <div class = "col-md-9">
\t \t <table class = "table table-responsive table-hover">
\t \t \t <tr>
\t \t \t \t <th>Delete</th>
\t \t \t \t <th>Item Name</th>
\t \t \t \t <th>Item Price</th>
\t \t \t \t <th>Image</th>
\t \t \t </tr>
<?php
//connection
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("marketech_db") or die (mysql_error());
$sql = "SELECT * FROM product_tbl WHERE prod_id='$gadgets'";
$prod_records = mysql_query($sql);
while($products=mysql_fetch_assoc($prod_records)){
\t \t echo "<tr>";
\t \t echo "<td>" .'<input type="checkbox" name="products[]" value='.$products['prod_id'].'>'."</td>";
\t \t echo "<td>".$products['item_name']."</td>";
\t \t echo "<td>".$products['item_price']."</td>";
\t \t echo "<td>".$products['item_image']."</td>";
\t \t echo "</tr>";
}
?>
\t \t </table>
\t \t <input type ="submit" class = "btn btn-danger" name = "delete_cart_item" value = "Delete"></form>
\t </div>
</div>
<br><br><br><br><br>
<!-- Footer Navigation -->
<nav class="navbar navbar-default">
<div class="container">
<ul class ="list-unstyled">
\t \t \t <li class = "col-md-2"><h5><b>Call Us: (049) 557 2681</b></h5></li>
\t \t \t <li class = "col-md-2"><h5><b><a href = "about.html"><font color = "black">About Us </b></h5></font></a></li>
\t \t \t <li class = "col-md-2"><h5><b><a href = "contact.html"><font color = "black">Contact Us</b></h5></font></a></li>
\t \t \t <li class = "col-md-2"><h5><b><a href = "privacy.html"><font color = "black">Privacy</b></h5></font></a></li>
\t \t \t <li class = "col-md-2"><h5><b><a href = "#"><font color = "black">Terms of Service</b></h5></font></a></li>
\t \t \t <li class = "col-md-2"><h5><b>Copyright (c) 2016<h5></li>
\t </ul>
</div>
</nav>
<!--
Members:
Marlon Mendoza
-->
</body>
</html>
您正在使用原始会话变量:$_SESSION['prod_id']
,而应该是一个数组。
初始化这样的:
$_SESSION['prod_ids'] = [];
然后在添加产品/移除到购物车,更新$_SESSION['prod_ids']
array_push($_SESSION['prod_ids'],/*product_id*/)
如何在cart.php中使用它以显示
您应该考虑做以下几点:
添加如果当前产品包含产品ID,则表示您的HTML的隐藏字段。
<p>Price: 9,199 Php<br>
<input class="btn btn-success" type="submit" name="action" value="add_to_cart">
<input type="hidden" name="product_id" value="1">
<span class="glyphicon glyphicon-shopping-cart"></span>
</p>
然后你就可以重构你的PHP这个
<?php
if (session_status() == PHP_SESSION_NONE) {
session_start();
$_SESSION['cart'] = array();
}
$connection = mysql_connect("localhost", "root", "");
if(isset($_GET['add_to_cart'])){
array_push($_SESSION['cart'], $_GET['product_id'];
header("location: ../" . $_GET['product_id'] . ".php");
}
mysql_close($connection);
通知创建会话对象时如何初始化$_SESSION['cart']
作为数组。您可以将产品ID分配到$_SESSION['cart']
,而不是将其推入阵列。
重构您在标题中设置的php文件的名称,或添加包含文件名称的其他隐藏字段。
我试过使用这个,但我不知道什么是所需的变量,如果我想显示在一个表中的项目cart.php 我应该使用$ prod_id = $ _GET ['product_id']; ? 因为我在我的select语句中需要它。 “SELECT * FROM product_tbl where prod_id = $ prod_id”; –
如果你有1000个项目要添加到购物车,你不能写1000如果else语句。使用loops.I创建一个示例代码,你想要从那引用,并使用自己的逻辑来创建你想要的。快乐的编码。
check https://jsfiddle.net/qun3ajL9/
链接不工作 –
你是什么意思泛型函数?对不起,新手在这里。 –
您绝对应该考虑为每个产品创建一个表单字段,其中包含名称=“action”&value =“add_to_cart”的按钮以及包含当前产品ID的隐藏字段。这样你就不需要这个巨大的功能,而是可以查找传递给PHP脚本的产品的ID。 –
您可以从这里http://www.peachpit.com/articles/article.aspx?p=1962481 – dimis283