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

问题描述:

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

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

+0

你是什么意思泛型函数?对不起,新手在这里。 –

+0

您绝对应该考虑为每个产品创建一个表单字段,其中包含名称=“action”&value =“add_to_cart”的按钮以及包含当前产品ID的隐藏字段。这样你就不需要这个巨大的功能,而是可以查找传递给PHP脚本的产品的ID。 –

+0

您可以从这里http://www.peachpit.com/articles/article.aspx?p=1962481 – dimis283

您正在使用原始会话变量:$_SESSION['prod_id'],而应该是一个数组。

初始化这样的:

$_SESSION['prod_ids'] = [];

然后在添加产品/移除到购物车,更新$_SESSION['prod_ids']

array_push($_SESSION['prod_ids'],/*product_id*/) 
+0

如何在cart.php中使用它以显示

中的项目?我可以用这个: include(“addtocartprocess。PHP的“); $ PROD_ID = $ _SESSION [ 'PROD_IDS']; ,然后在我的SQL语法 ”SELECT * FROM product_tbl其中PROD_ID = '$ PROD_ID'“; 我使用尝试,但它没” t工作 –
+0

@MarlonMendoza,你可以在任何地方发布你的代码,我无法正确理解你的场景。 –

+0

这里是我的android.php(你可以浏览这里的项目): https://gist.github.com /匿名/ 4d127e07e456d0655644e5ee293b4cf2 这里是我的addtocartprocess.php: https://gist.github.com/anonymous/e78d6e2a0f96d18b54ec0763801cb1a5 这是我的cart.php(在那里你可以请参阅您在购物车中添加的商品): https://gist.github.com/anonymous/a67abaaa3f2c0728a70c3e527335f474 我在将多件物品存储在购物车中并显示时出现问题。 –

您应该考虑做以下几点:

添加如果当前产品包含产品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文件的名称,或添加包含文件名称的其他隐藏字段。

+0

我试过使用这个,但我不知道什么是所需的变量,如果我想显示在一个表中的项目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/ 
+0

链接不工作 –

相关文章

您应该考虑做以下几点:

添加如果当前产品包含产品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文件的名称,或添加包含文件名称的其他隐藏字段。

+0

我试过使用这个,但我不知道什么是所需的变量,如果我想显示在一个表中的项目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/ 
+0

链接不工作 –