du2229 2012-12-01 07:46
浏览 217
已采纳

为什么这个json_encode()不起作用

Why this json encode format is not working .If I write it outside of the all brackets.Then it works,but get only one row.Plz help

$sql=mysqli_query($database,"SELECT * FROM com  ORDER by time DESC");
while($row=mysqli_fetch_array($sql)){
        $mid=$row['id'];
        $text=$row['text'];

        if($text) {
            $response=array();

            $response['msg']=$text;
            $response['id']=$id;
            echo json_encode($response);
        }
}
    //$response=array();

    // $response['msg']=$text;
    // $response['id']=$mid;
    // echo json_encode($response);

Jquery for getting above results.

function com(id){
    $.post('load.php', {tocom:id},function(data) {
        var json = eval('(' + data + ')');
        if(json['msg'] != "") {
            var msg=json['msg'];
            var fro=json['id'];
            $("#msg).html(fro+msg);
        }
      });
}
  • 写回答

2条回答 默认 最新

  • douzuo0002 2012-12-01 07:54
    关注

    You are not giving one json response, but as much response as you have iterations in your while.

    The good syntax should be :

    PHP :

    $sql=mysqli_query($database,"SELECT * FROM com  ORDER by time DESC");
    $final_response = array();
    while($row=mysqli_fetch_array($sql)){
        $mid=$row['id'];
        $text=$row['text'];
    
        if($text) {
            $response=array();
            $response['msg']=$text;
            $response['id']=$id;
            $final_response[] = $response;
        }
    
    }
    echo json_encode($final_response);
    

    JS :

    function com(id){
    
        $.post('load.php', {tocom:id},function(data) {
            $("#msg").html('');
            var json = eval('(' + data + ')');
            $.each(json, function(i, row) {
               if(row['msg'] != "") {
                   var msg=row['msg'];
                   var fro=row['fro'];
                   $("#msg").append(fro+msg);
               }
            });
        });
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站