Пожалуйста, помогите мне, я работаю над сайтом электронной коммерции, я добавил страницу категории, на странице индекса добавление в корзину работает, но когда я выбираю конкретную категорию и пытаюсь добавить любую из продукт, он не добавляется в корзину, он возвращается на страницу индекса и снимает отметку с категории, возможно, кто-то может мне помочь, вот мой код ниже: У меня три файла, это мои индексные коды
index. php:
<!--= this code displays the categories -->
<h3 class="text-center text-light bg-dark p-2"><b><a style="color: white;" href="index.php">Products</a></b></h3>
`enter code here`<div class="container-fluid">
enter code here<div class="row">
<div class="col-lg-3">
<h3 class="text-center"><b>All Categories</b></h3>
<hr>
<h6 class="text-light bg-dark p-2 rounded"><b>Select Category</b></h6>
<ul class="list-group">
<?php
$sql = "SELECT DISTINCT product_cat FROM products ORDER BY product_cat";
$result = $conn->query($sql);
while ($row=$result->fetch_assoc()){
?>
<li class="list-group-item">
<div class="form-check">
<label class="form-check-label">
<input type="checkbox" class="form-check-input product_check" value="<?= $row['product_cat']; ?>" id="product_cat"><?= $row['product_cat']; ?>
</label>
</div>
</li>
<?php } ?>
</ul>
</div>
<div class="col-lg-9">
<h5 class="text-center" style="font-weight: bolder;" id="textChange">All Products</h5>
<hr>
<div class="text-center">
<img src="../images/loader.gif" id="loader" width="200" style="display: none;">
</div>
<div class="row" id="result">
<div id="message"></div>
<div class="row mt-2 pb-3">
<?php
include 'config.php';
$sql="SELECT * FROM products";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()):
?>
<div class="col-sm-6 col-md-3 col-lg-3 mb-2">
<div class="card-deck">
<div class="card p-2 border-secondary mb-2">
<img src="../admin/product-images/<?= $row['product_image']; ?>" class="card-img-top" height="250">
<div class="card-body p-1">
<h4 class="card-title text-center text-info"><?= $row['product_name'] ?></h4>
<h5 class="card-text text-center text-danger"><b>₦ <?= number_format($row['product_price'],2) ?>/- </b></h5>
</div>
<div class="card-footer p-1">
<form action="" class="form-submit">
<input type="hidden" class="pid" value="<?= $row['id'] ?>">
<input type="hidden" class="pname" value="<?= $row['product_name'] ?>">
<input type="hidden" class="pprice" value="<?= $row['product_price'] ?>">
<input type="hidden" class="pimage" value="<?= $row['product_image'] ?>">
<input type="hidden" class="pcode" value="<?= $row['product_code'] ?>">
<button class="btn btn-success btn-block addItemBtn"><i class="fas fa-cart-plus"></i> Add to Cart</button>
<button class="btn btn-info btn-block viewItemBtn"><i class="fas fa-info-circle"></i> View Details</button>
</form>
</div>
</div>
</div>
</div>
<?php endwhile; ?>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="https://cdn.datatables.net/v/bs4/dt-1.10.20/datatables.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@8"></script>
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript" src="../js/bootstrap.bundle.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".addItemBtn").click(function(e){
e.preventDefault();
var $form = $(this).closest(".form-submit");
var pid = $form.find(".pid").val();
var pname = $form.find(".pname").val();
var pprice = $form.find(".pprice").val();
var pimage = $form.find(".pimage").val();
var pcode = $form.find(".pcode").val();
$.ajax({
url: 'action.php',
method: 'post',
data: {pid:pid,pname:pname,pprice:pprice,pimage:pimage,pcode:pcode},
success:function(response){
$("#message").html(response);
load_cart_item_number();
}
});
});
load_cart_item_number();
function load_cart_item_number(){
$.ajax({
url: '../action.php',
method: 'get',
data: {cartItem:"cart_item"},
success:function(response){
$("#cart-item").html(response);
}
});
}
$(".product_check").click(function(){
$("#loader").show();
var action = 'data';
var product_cat = get_filter_text('product_cat');
$.ajax({
url:'action.php',
method:'POST',
data:{action:action,product_cat:product_cat},
success:function(response){
$("#result").html(response);
$("#loader").hide();
$("#textChange").text("Filtered Products");
}
});
});
function get_filter_text(text_id){
var filterData = [];
$('#'+text_id+':checked').each(function(){
filterData.push($(this).val());
});
return filterData;
}
});
</script>
</body>
</html>
это мои коды действий
action. php:
<?php
//db connection
require 'config.php';
//display products and category products
if (isset($_POST['action'])) {
$sql = "SELECT * FROM products WHERE product_cat !=''";
if (isset($_POST['product_cat'])) {
$product_cat = implode("','", $_POST['product_cat']);
$sql .="AND product_cat IN('".$product_cat."')";
}
$result = $conn->query($sql);
$output='';
if($result->num_rows>0){
while ($row=$result->fetch_assoc()){
$output .= '<div id="message"></div>
<div class="col-sm-6 col-md-3 col-lg-3 mb-2">
<div class="card-deck">
<div class="card p-2 border-secondary mb-2">
<img src="../admin/product-images/'.$row['product_image'].'" class="card-img-top" height="250">
<div class="card-body p-1">
<h4 class="card-title text-center text-info">'.$row['product_name'].'</h4>
<h5 class="card-text text-center text-danger"><b>₦ '.number_format($row['product_price'],2).'/- </b></h5>
</div>
<div class="card-footer p-1">
<form action="" class="form-submit">
<input type="hidden" class="pid" value="'.$row['id'].'">
<input type="hidden" class="pname" value="'.$row['product_name'].'">
<input type="hidden" class="pprice" value="'.$row['product_price'].'">
<input type="hidden" class="pimage" value="'.$row['product_image'].'">
<input type="hidden" class="pcode" value="'.$row['product_code'].'">
<button class="btn btn-success btn-block addItemBtn"><i class="fas fa-cart-
plus"></i> Add to Cart</button>
<button class="btn btn-info btn-block viewItemBtn"><i class="fas fa-info-
circle"></i> View Details</button>
</form>
</div>
</div>
</div>
</div>';
}
}
else{
$output = "<h3>No Products Found!</h3>";
}
echo $output;
}
//add to cart codes
if(isset($_POST['pid'])){
$pid = $_POST['pid'];
$pname = $_POST['pname'];
$pprice = $_POST['pprice'];
$pimage = $_POST['pimage'];
$pcode = $_POST['pcode'];
$pqty = 1;
$stmt = $conn->prepare("SELECT product_code FROM cart WHERE product_code=?");
$stmt->bind_param("s",$pcode);
$stmt->execute();
$res = $stmt->get_result();
$r = $res->fetch_assoc();
$code = $r['product_code'];
if(!$code){
$query = $conn->prepare("INSERT INTO cart (product_name,product_price,product_image,qty,total_price,product_code) VALUES (?,?,?,?,?,?)");
$query->bind_param("sssiss",$pname,$pprice,$pimage,$pqty,$pprice,$pcode);
$query->execute();
echo '<div class="alert alert-success alert-dismisible mt-2">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Item added to your cart!</strong>
</div>';
}
else{
echo '<div class="alert alert-danger alert-dismisible mt-2">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Item already added to your cart!</strong>
</div>';
}
}
?>
спасибо