代码之家  ›  专栏  ›  技术社区  ›  ArK Sheeba Nancy

jqueryajax数组响应处理

  •  0
  • ArK Sheeba Nancy  · 技术社区  · 14 年前

    如何处理来自.getjson的数组响应。下面的代码处理ajax请求。

    function getinfo()
     {
         $query="select field_uname_value,field_uaddress_value,field_uphone_value from {content_type_udetails}";
         $result= db_query($query);
         $i=0;     
         while($item = db_fetch_object($result))
         {
          $info[$i++]=array($item->field_uname_value,$item->field_uaddress_value,$item->field_uphone_value);
         }
         print_r($info);
     }
    

    并返回如下数组

    Array
    (
        [0] => Array
            (
                [0] => bharath
                [1] => 12th street ,ram nagar
                [2] => 213124442
            )
    
        [1] => Array
            (
                [0] => Christina
                [1] => 77,five corner
                [2] => 76874323
            )
    
        [2] => Array
            (
                [0] => Ranjan
                [1] => queen towers, 4th layout
                [2] => 45745747
            )
    
    )
    

     $.getJSON('/knpgetuserinfo.json&timestamp'+new Date().getTime(), function(data) {
       alert(data[0][0]); 
    }
    
    2 回复  |  直到 14 年前
        1
  •  2
  •   RobertPitt    14 年前

    你不能这样做,print\r只是把数组打印成可读的文本,你还在里面有一些键/值分离的形式,作为你的使用 getJSON 我想说你用 json_encode()

    function getinfo()
        {
            $query="select field_uname_value,field_uaddress_value,field_uphone_value from {content_type_udetails}";
             $result= db_query($query);
             $info = array();
             while($item = db_fetch_object($result))
             {
                 $info[] = array(
                     'name' => $item->field_uname_value,
                     'address' => $item->field_uaddress_value,
                     'phone' => $item->field_uphone_value
                 );
             }
             echo json_encode($info);
         }
    

    $.getJSON('/knpgetuserinfo.json&timestamp'+new Date().getTime(), function(data) {
        $.each(data,function(item){
           //use item.name or item.address here
        });
    }
    
        2
  •  1
  •   Nick Craver    14 年前

    您不需要打印,而是需要通过 json_encode ,通过替换:

    print_r($info);
    

    使用:

    echo json_encode($info);
    

    问题是你没有及时返回数据 JSON 当前格式化,因此当jQuery进行解析时,它会失败。