2010-10-02 5 views
0

Comment gérer une réponse de tableau à partir de .getjson. Le code suivant gère la requête ajax.jquery ajax gestion de réponse de tableau

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); 
} 
tableau

et retourne comme suit

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 
     ) 

) 

mais après ajax manipulation ne fonctionne. comment obtenir la réponse du tableau

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

Répondre

2

Vous ne pouvez pas le faire, print_r qu'afficher Teh tableau à texte lisible, vous avez encore une certaine forme de séparation clé/valeur là-dedans, et comme l'aide getJSON je dirais que vous utilisez 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); 
    } 

puis utiliser javascript comme ceci:

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

au lieu d'imprimer, vous avez besoin au format JSON via json_encode, en remplaçant:

print_r($info); 

Avec:

echo json_encode($info); 

Le problème que vous est » ne pas retourner les données dans un format JSON actuellement, donc quand jQuery va analyser, il échoue.

+0

le json_encode renvoie une chaîne, pas un objet de tout type en PHP, elle devrait juste être echo'd! – RobertPitt

+0

@RobertPitt - Yup, quand j'ai giflé son code dans un test rapide, il m'a rappelé, déjà mis à jour :) –