что я могу сделать, чтобы моя кнопка добавления в корзину работала? - PullRequest
0 голосов
/ 09 июля 2020

Пожалуйста, помогите мне, я работаю над сайтом электронной коммерции, я добавил страницу категории, на странице индекса добавление в корзину работает, но когда я выбираю конкретную категорию и пытаюсь добавить любую из продукт, он не добавляется в корзину, он возвращается на страницу индекса и снимает отметку с категории, возможно, кто-то может мне помочь, вот мой код ниже: У меня три файла, это мои индексные коды

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>&nbsp;&nbsp;Add to Cart</button>

                            <button class="btn btn-info btn-block viewItemBtn"><i class="fas fa-info-circle"></i>&nbsp;&nbsp;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>&nbsp;&nbsp;Add to Cart</button>

                            <button class="btn btn-info btn-block viewItemBtn"><i class="fas fa-info- 
                            circle"></i>&nbsp;&nbsp;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">&times;</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">&times;</button>
        <strong>Item already added to your cart!</strong>
        </div>';
    }
}

?>

спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...