Je dois obtenir un tableau généré à partir d'un script php. J'ai une Latitude et une Longitude pour chaque utilisateur dans une base de données. Je prends les valeurs du db avec ce code (fichier.php):
$query = "SELECT Latitude, Longitude FROM USERS"; $result=mysql_query($query); $array=array(); while ($data = mysql_fetch_array($result)) { $array[]=$data['Latitude']; $array[]=$data['Longitude']; } echo $array;
Et j'appelle avec ajax avec ce code:
$.post('./file.php', function( result ){ alert(result); });
Mais même si dans le script php le tableau est correct (si j'échole le tableau [25], j'obtiens la bonne valeur) en Javascript, j'obtiens "Undefined". Comment puis-je obtenir le tableau de manière correcte? Merci!
Edit: après codé avec json_encode ($ array); Dans php et JSON.parse (résultat) dans javascript semble ne pas fonctionner. Dans la console, j'ai le tableau, mais je ne peux pas accéder à ses valeurs. (Array [0] m'a donné "indéfini").
utilisez ceci
echo json_encode($array);
Du côté du serveur
et
var arr=JSON.parse(result);
Du côté client
Comme l'a mentionné Ruslan Polutsygan, vous utilisez
echo json_encode($array);
Sur le côté PHP.
Sur le côté Javascript, vous pouvez simplement ajouter DataType à $ .post () – Fonction:
$.post( './file.php', function( result ){ console.log(result); }, 'json' );
Et le résultat-Paramètre est le JSON-Data analysé.
Vous pouvez également définir le type de contenu correct dans votre script PHP. Ensuite, jQuery devrait analyser automatiquement les données JSON retournées à partir de votre script PHP:
header('Content-type: application/json');
Voir
http://api.jquery.com/jQuery.post/
http://de3.php.net/json_encode
Vous devez convertir le tableau php en json, essayez:
echo json_encode($array);
JQuery devrait pouvoir voir que json est retourné et créer un objet javascript hors de lui automatiquement.
$.post('./file.php', function(result) { $.each(result, function() { console.log(this.Latitude + ":" + this.Longitude); }); });