$ .each()不使用$ .ajax()中的json数据

时间:2017-02-17 19:28:38

标签: php jquery html json

我好像在这里显示json数据有问题.. $ .each不起作用。我收到此错误:未捕获TypeError:无法使用'in'运算符来搜索'length'。下面给出了jQuery和php的代码。帮助我找到错误的地方是非常有帮助的。

jQuery的:

$(document).ready(function(){

    $(document).on('click','#dispf',function(e){
        e.preventDefault();

        var prjid=$(this).data('id');

        console.log("Here"+prjid);

        $.ajax({

    type:"post",

    url:"fetch_pdet.php",
    data:"p_id="+prjid,

    success:function(res){

        console.log(res); //This displays as json string 

        $.each(res,function(i,pdet){ // here the error occurs
        console.log(res.proj.title);
});
}
});});
});

php:
<?php
$pid=$_POST['p_id'];

$qry="SELECT * from stud_proj where proj_id=$pid";
$res=mysqli_query($link,$qry); 
$row=mysqli_fetch_assoc($res);
$cid=$row['categ_id'];


$qry1="SELECT * from categ where categ_id=$cid";
$res1=mysqli_query($link,$qry1);

mysqli_data_seek($res,0);

if($res && $res1){
    $pdet=array();
    while($row1=mysqli_fetch_assoc($res))
    {
        $pdet['proj']=$row1;
    }

    while($row2=mysqli_fetch_assoc($res1))
    {
        $pdet['catg']=$row2;
    }
    //header('Content-type: text/json');
    echo json_encode($pdet);
?>

1 个答案:

答案 0 :(得分:0)

您需要将JSON字符串转换为javascript对象以循环它

$.each(JSON.parse(res),function(i,pdet){
...
}

这应该可以解决问题。