获取"参数未定义"在jQuery中使用AJAX,MySQL和php

时间:2016-08-17 22:04:25

标签: javascript php jquery ajax mysqli

解释我的问题有点困难,但我会尽量清楚。

我在php中使用mysqli数据库建立一个购物网站,我有一个"category""brands"部分。

我想要的是用户可以通过点击类别&来过滤商店中的产品。在ajax jQuery的帮助下没有页面刷新的品牌部分。

例如在类别>电子产品上,它会在网站主页上显示电子产品。

也许使用代码,它会更清晰。

这是HTML的一部分:

        <div class="panel panel-info">
           <div class="panel-heading">Products</div>
            <div class="panel-body">
                <div id="getProduct"></div>
            </div>

这是&#34; action.php&#34;中的PHP代码文件:

    <?php
    if(isset($_POST["getSelectedCategory"])){
        $cid=$_POST["categoryID"];
        $sql="SELECT * FROM products WHERE productCat = '$cid' ";
        $run_query=mysqli_query($con, $sql);
        while($row=mysqli_fetch_arry($run_query)){
            $productID = $row["productID"];
            $productCat = $row["productCat"];
            $productBrand = $row["productBrand"];
            $productTitle = $row["productTitle"];
            $productPrice = $row["productPrice"];
            $productIMG = $row["productIMG"];

            echo " <div class='col-md-4'>
 <div class='panel panel-info'>
<div class='panel-heading'>$productTitle</div>
<div class='panel-body'>
 <img src='assets/$productIMG' style='width: 160px; height: 250px;'/>
   </div>
  <div class='panel-heading'>$productPrice.00$
    <button pid='$productID' style='float: right;' class='btn btn-danger btn-xs'>Add To Cart</button>
      </div>
    </div>
     </div> ";

 }

}
?>

这是jQuery代码:

   $("body").delegate(".category","click",function (event) {
        event.preventDefault();
        var cid = $(this).attr("categoryID");

        /*Used this alert to see if the
         right category number is shown, Here it says undefined*/
        alert(cid);
       $.ajax({
            url: "action.php",
            method: "POST",
            data: {getSelectedCategory: 1, categoryID: cid},
            success: function (data){
                $("#getProduct").html(data);
            }

        })
    });

我似乎无法在我的代码中找到问题,如果需要额外的代码,我会提供它。我希望我的问题很明确。如果不是,我会尝试更具体。谢谢。

1 个答案:

答案 0 :(得分:0)

您的js代码正在监听.category类。你的PHP代码模板中没有这样的类。这就是你的echo应该如何工作:

echo " <div class='col-md-4'>
         <div class='panel panel-info'>
           <div class='panel-heading'>$productTitle</div>
             <div class='panel-body'>
               <img src='assets/$productIMG' style='width: 160px; height: 250px;'/>
             </div>
             <div class='panel-heading'>
               <a class='category' categoryID = '$productCat'>$productBrand</a>
                $productPrice.00$
             <button pid='$productID' style='float: right;' class='btn btn-danger btn-xs'>Add To Cart</button>
          </div>
        </div>
     </div> ";

看 - 我已将<a class="category" categoryID = '$productCat'>$productBrand </a>添加到您的面板标题中。