繁体   English   中英

使用多个不同的按钮在购物车中添加多个项目(添加到购物车)

[英]Adding Multiple Items in Cart (add to cart) using multiple different buttons

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

 <!-- 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'])){ $_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); ?> 

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

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

像这样初始化它:

$_SESSION['prod_ids'] = [];

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

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

您应该考虑执行以下操作:

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

如果您有1000个要添加到购物车的商品,则不能编写if if语句。更好地使用循环。我为要创建的代码创建了示例代码,并使用自己的逻辑创建了所需的代码。

check  https://jsfiddle.net/qun3ajL9/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM