обработка ответа массива jquery ajax - PullRequest
0 голосов
/ 02 октября 2010

Как обработать ответ массива от .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
        )

)

но следующая обработка ajax не работает. как получить ответ массива

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

Ответы [ 2 ]

2 голосов
/ 02 октября 2010

Вы не можете сделать это, 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 голос
/ 02 октября 2010

Вместо печати вам нужно в формате JSON через json_encode, заменив:

print_r($info);

на:

echo json_encode($info);

Проблемавы не возвращаете данные в формате JSON в настоящее время, поэтому, когда jQuery выполняет анализ, происходит сбой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...