2013-05-29 4 views
0

Le problème est que le message d'alerte "TEST" n'apparaît pas, bien que la fonction getData.php soit exécutée avec succès et renvoie des données. Je l'ai vérifié dans Firelog, où je peux voir la sortie suivante:Les données JSON ne sont pas retournées

Array{"arr":[["1","EZY14ZM","2013-05-29 16:44:38","2013-05-29 16:45:28"],["1","VLG1307","2013-05-29 16:47:05","2013-05-29 16:47:55"],["1","WZZ212","2013-05-29 16:49:12","2013-05-29 16:50:02"]],"dep":[["1","VLG8306","2013-05-29 16:59:17","2013-05-29 17:00:00"],["1","VLG3786","2013-05-29 17:07:29","2013-05-29 17:08:12"],["1","IBE1851","2013-05-29 17:08:38","2013-05-29 17:09:21"],["1","DLH58Y","2013-05-29 17:09:47","2013-05-29 17:10:30"]]} 

Comment résoudre ce problème?

function show_data() { 
$.getJSON(
    'h_index.php?module=mod_1&pag_mod=getData.php', 
    function(data) { 
     alert("TEST"); 
    } 
);    
} 

getData.php

<?php 
    //... 
    echo json_encode(array('arr' => $rows_arr, 'dep' => $rows_dep);); 
    die(); 
?> 
+0

A partir de ce tableau apparaissant dans la réponse, je suppose que vous faites écho sur un tableau plus haut dans getData.php – Ryan

+0

@Ryan Pilbeam: Pour vérifiez ceci, j'ai changé json_encode de la façon suivante: json_encode (array ('TEST' => $ rows_arr ...) Par conséquent j'ai eu Array {"TEST": [["1" ... Donc, cet écho retourne les données JSON –

Répondre

0

Quote: vos données vues dans Firebug:

Array{"arr":[["1","EZY14ZM","2013-05-29 16:44 ..... 

Notez le Array au début de ce ..... cela est JSON non valide.

La fonction réelle json_encode() que vous appelez est correcte. Il a un point virgule vagabond supplémentaire, mais c'est une syntaxe PHP invalide, donc je suppose qu'il est inséré lorsque vous avez posté la question plutôt que d'être dans votre code actuel.

Ainsi, le texte erronné Array n'est pas produit par la fonction json_encode(), il doit donc provenir d'un autre endroit de votre PHP. Recherchez un echo ou un print ailleurs dans votre code qui est sortie par erreur. (probablement en imprimant une variable tableau plutôt que la chaîne réelle "Array")

+0

Pour vérifier ceci, j'ai changé json_encode de la façon suivante: json_encode (array ('TEST' => $ rows_arr ...) J'ai donc obtenu Array {"TEST": [["1" .. Donc, cet écho renvoie les données JSON –

+0

@KlausosKlausos - Votre test ne prouve rien, comme je l'ai dit, le "Array" vient d'ailleurs dans votre code, il ne vient pas du 'json_encode()' Vous pouvez le prouver en commentant complètement la ligne 'json_encode()' ... vous trouverez t vous avez toujours le texte "Array" dans la sortie. – Spudley

+0

oui, c'est vrai. Alors, dois-je trouver et commenter un écho? –

Questions connexes