Php 依赖下拉Jquery选项列表JSON错误

Php 依赖下拉Jquery选项列表JSON错误,php,jquery,json,ajax,mysqli,Php,Jquery,Json,Ajax,Mysqli,伙计们,我对Jquery和Json非常陌生,我正在尝试用Jquery创建一个依赖选项列表,但它不起作用。我期待你的帮助。 这是我的HTML代码 <div class="form-group"> <label for="categoriesId"> Categories</label> <select class="form-control" id="categoriesId" name="categoriesId">

伙计们,我对Jquery和Json非常陌生,我正在尝试用Jquery创建一个依赖选项列表,但它不起作用。我期待你的帮助。 这是我的HTML代码

<div class="form-group">
    <label for="categoriesId">
        Categories</label>
    <select class="form-control" id="categoriesId" name="categoriesId">
        <option selcted="">Select
            Categories</option>
        <?php                   
            getCat();
        ?>
    </select>
</div>
我的Jquery代码在这里

<?php   
    require_once 'db_connect.php';
    if(isset($_POST['cid'])){
        $sql = "SELECT product_id, product_name 
             FROM product WHERE categories_id = '". $cid 
             ."'";
        $result = $connect->query($sql);
        while($product = $productData->fetch_array()) {                                     
             echo "<option value='".$product['product_id']."'> 
                 ".$product['product_name']."</option>";
       }  
    }
?>
$(document).ready(function () {
    $("#categoriesId").change(function () {
        var cid = $("#categoriesId").val();
        $.ajax({
            url: 'fetchProductData.php',
            method: 'POST',
            data: 'cid' + cid
                .done(function (product) {
                    console.log(product);
                    product = json.parse(product);
                    product.forEach(function (products) {
                        $('#product').appned();
                    });
                });
        });

在您的jquery中,您有错误,首先,正如Nigel Ren所说,您从服务器获得html响应。因此,为了得到响应,您不需要使用json.parse。此外,我在您的html代码中没有找到任何带有名称product的id。而且jquery中没有appned函数。因此,在您的代码中进行以下更改以使其正常工作

  $(document).ready(function () {
     $("#categoriesId").change(function () {
            var cid = $("#categoriesId").val();
            $.ajax({
                url: 'fetchProductData.php',
                method: 'POST',
                data: {cid : cid },
                     success:function(data){

                $("#product").html(data);//here response from server will be display in #product



                 }
                    });
            });

当我使用JSON_encode时,fetchProductDta.php返回的是HTML而不是JSON;它给我带来了一个错误,比如这个意外的json解析错误@奈杰伦,你能帮我解决吗?谢谢你的回复。我试过你的代码,但坏消息是它不起作用。当我选择类别字段,但在下一个字段中没有数据提取时。这是我的产品id html product Select product在您的php代码中此->$product=$productData->fetch_数组它应该是$product=$result->fetch_数组,因为您正在获取$result中的所有行。另外,您没有获取$cid,而是直接在查询中传递它。您的查询应该是这样的->Select product_id,类别为“”的产品的产品名称$_POST['cid']。'非常感谢,但我已经更改了我的php代码,并尝试使用此代码,但输出仍然是相同的'db_connect.php';ifisset$\u POST['cid']{$sql=从类别为'id'.$\u POST['cid'.;$result=$connect->查询$sql;而$product=$result->获取数组{echo.$product['product\U name'.}我已检查网页,它有这个错误->张贴http://chatworld.xyz/drop.php 500内部服务器错误意味着服务器端php文件出现问题我不明白发生了什么,甚至我更改了我的所有php脚本。这个下拉列表让我非常恼火!!需要一次'db_connect.php';如果空的$_POST[cid]{$query=$db->querySELECT*来自产品,其中类别$_id=.$_POST['cid']和活动=1;$rowCount=$query->num_rows;如果$rowCount>0{echo'产品不可用';而$row=$query->fetch_assoc{echo.$row['product_name'.}}否则{echo'产品不可用';echo}