使用多个不同按钮在购物车中添加多个商品(添加到购物车)

时间:2016-12-07 11:52:13

标签: javascript php html css mysql

我是初学者。我正在开发一个电子商务网站。我的问题是我似乎无法在购物车中添加多件商品。如果我点击了一个项目,它将被添加到购物车中,但当我点击另一个项目时,它将替换我选择的第一个项目。关于我如何解决这个问题的任何建议?谢谢



<!-- 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;
&#13;
&#13;

&#13;
&#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;
&#13;
&#13;

&#13;
&#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;
&#13;
&#13;

3 个答案:

答案 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/