我是初学者。我正在开发一个电子商务网站。我的问题是我似乎无法在购物车中添加多件商品。如果我点击了一个项目,它将被添加到购物车中,但当我点击另一个项目时,它将替换我选择的第一个项目。关于我如何解决这个问题的任何建议?谢谢
<!-- 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>
&#13;
<?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'])){
$_SESSION['prod_id'] = 1;
header("location: ../android.php");
}
if(isset($_GET['add_to_cart2'])){
$_SESSION['prod_id'] = 2;
header("location: ../android.php");
}
if(isset($_GET['add_to_cart3'])){
$_SESSION['prod_id'] = 3;
header("location: ../android.php");
}
if(isset($_GET['add_to_cart4'])){
$_SESSION['prod_id'] = 4;
header("location: ../android.php");
}
if(isset($_GET['add_to_cart5'])){
$_SESSION['prod_id'] = 5;
header("location: ../android.php");
}
if(isset($_GET['add_to_cart6'])){
$_SESSION['prod_id'] = 6;
header("location: ../android.php");
}
if(isset($_GET['add_to_cart7'])){
$_SESSION['prod_id'] = 7;
header("location: ../android.php");
}
if(isset($_GET['add_to_cart8'])){
$_SESSION['prod_id'] = 8;
header("location: ../android.php");
}
if(isset($_GET['add_to_cart9'])){
$_SESSION['prod_id'] = 9;
header("location: ../android.php");
}
if(isset($_GET['add_to_cart10'])){
$_SESSION['prod_id'] = 10;
header("location: ../iphone.php");
}
if(isset($_GET['add_to_cart11'])){
$_SESSION['prod_id'] = 53;
header("location: ../iphone.php");
}
if(isset($_GET['add_to_cart12'])){
$_SESSION['prod_id'] = 54;
header("location: ../iphone.php");
}
if(isset($_GET['add_to_cart13'])){
$_SESSION['prod_id'] = 55;
header("location: ../windows.php");
}
if(isset($_GET['add_to_cart14'])){
$_SESSION['prod_id'] = 56;
header("location: ../windows.php");
}
if(isset($_GET['add_to_cart15'])){
$_SESSION['prod_id'] = 57;
header("location: ../windows.php");
}
if(isset($_GET['add_to_cart16'])){
$_SESSION['prod_id'] = 58;
header("location: ../smartwatch.php");
}
if(isset($_GET['add_to_cart17'])){
$_SESSION['prod_id'] = 59;
header("location: ../smartwatch.php");
}
if(isset($_GET['add_to_cart18'])){
$_SESSION['prod_id'] = 60;
header("location: ../smartwatch.php");
}
if(isset($_GET['add_to_cart19'])){
$_SESSION['prod_id'] = 61;
header("location: ../computer.php");
}
if(isset($_GET['add_to_cart20'])){
$_SESSION['prod_id'] = 62;
header("location: ../computer.php");
}
if(isset($_GET['add_to_cart21'])){
$_SESSION['prod_id'] = 64;
header("location: ../computer.php");
}
$gadgets = $_SESSION['prod_id'];
mysql_close($connection);
?>
&#13;
<!-- 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){
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">
<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>
<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>
<ul class="dropdown-menu col-xs-2">
<li><a href="android.php#samsung">Samsung</a></li>
<li><a href="iphone.php">Apple</a></li>
<li><a href="windows.php">Microsoft</a></li>
<li><a href="android.php#sony">Sony</a></li>
<li><a href="android.php#asus">Asus</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</nav>
<!-- Marketechs Third Navigation (with glyphicons) -->
<div class="container">
<ul class="list-unstyled">
<li class = "col-md-3"><span class="glyphicon glyphicon-transfer"></span> 30 days Free Returns</li>
<li class = "col-md-3"><span class="glyphicon glyphicon-plane"></span> Free Delivery Above 999 php</li>
<li class = "col-md-3"><span class="glyphicon glyphicon-usd"></span> Cash on Delivery</li>
<li class = "col-md-3"><span class="glyphicon glyphicon-earphone"></span> Call (049) 557 2681</li>
</ul>
</div>
</div>
<!-- Cart -->
<div class = "container-fluid">
<form method = "GET" action = "deletecartproduct.php">
<div class = "col-md-9">
<table class = "table table-responsive table-hover">
<tr>
<th>Delete</th>
<th>Item Name</th>
<th>Item Price</th>
<th>Image</th>
</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)){
echo "<tr>";
echo "<td>" .'<input type="checkbox" name="products[]" value='.$products['prod_id'].'>'."</td>";
echo "<td>".$products['item_name']."</td>";
echo "<td>".$products['item_price']."</td>";
echo "<td>".$products['item_image']."</td>";
echo "</tr>";
}
?>
</table>
<input type ="submit" class = "btn btn-danger" name = "delete_cart_item" value = "Delete"></form>
</div>
</div>
<br><br><br><br><br>
<!-- Footer Navigation -->
<nav class="navbar navbar-default">
<div class="container">
<ul class ="list-unstyled">
<li class = "col-md-2"><h5><b>Call Us: (049) 557 2681</b></h5></li>
<li class = "col-md-2"><h5><b><a href = "about.html"><font color = "black">About Us </b></h5></font></a></li>
<li class = "col-md-2"><h5><b><a href = "contact.html"><font color = "black">Contact Us</b></h5></font></a></li>
<li class = "col-md-2"><h5><b><a href = "privacy.html"><font color = "black">Privacy</b></h5></font></a></li>
<li class = "col-md-2"><h5><b><a href = "#"><font color = "black">Terms of Service</b></h5></font></a></li>
<li class = "col-md-2"><h5><b>Copyright (c) 2016<h5></li>
</ul>
</div>
</nav>
<!--
Members:
Marlon Mendoza
-->
</body>
</html>
&#13;
答案 0 :(得分:1)
您正在使用原始会话变量:$_SESSION['prod_id']
,而应该是一个数组。
初始化如下:
$_SESSION['prod_ids'] = [];
然后,当将产品添加/移至购物车时,请更新$_SESSION['prod_ids']
array_push($_SESSION['prod_ids'],/*product_id*/)
答案 1 :(得分:0)
您应该考虑执行以下操作:
在HTML中添加一个隐藏字段,其中包含当前产品的产品ID。
<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']
,而不是将产品ID分配到数组中。
重构您在标题中设置的php文件的名称,或添加包含文件名称的其他隐藏字段。
答案 2 :(得分:0)
如果要添加到购物车中有1000个项目,则无法写入1000 if else statement.Better使用循环。我为您想要的参考创建了一个示例代码,并使用您自己的逻辑创建您想要的内容。编码
check https://jsfiddle.net/qun3ajL9/