2010-10-02 96 views
0

如何處理來自.getjson的數組響應。以下代碼處理ajax請求。jquery 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 
     ) 

) 

但以下AJAX處理不工作。如何獲得陣列響應

$.getJSON('/knpgetuserinfo.json&timestamp'+new Date().getTime(), function(data) { 
    alert(data[0][0]); 
} 

回答

2

你不能做到這一點,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); 
    } 

,然後使用JavaScript像這樣:

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

除了打印,你通過json_encode需要JSON格式,通過更換:

print_r($info); 

有了:

echo json_encode($info); 

問題是你」不要以當前的JSON格式返回數據,所以當jQuery進行解析時,它會失敗。

+0

json_encode返回一個字符串,而不是PHP中的任何類型的對象,應該只是echo'd! – RobertPitt 2010-10-02 11:28:01

+0

@RobertPitt - 是的,當我在快速測試中打他的代碼時,它提醒我已經更新:) – 2010-10-02 11:28:33