Perfetto, quindi la chiamata Ajax sta passando bene i valori. Vedo che stai effettuando quella chiamata ogni 10 secondi, dentro un callback nel setinterval. La variabile result la stai definendo (con var) nell'ambito della funzione reloadData() (cioè il callback del setinterval); in tal caso tieni conto che non sarà visibile all'esterno di quella funzione. Se vuoi avere una variabile visibile in qualsiasi punto dello script, devi dichiararla a livello globale, cioè nel livello principale, fuori da qualsiasi funzione.
Considera inoltre che il risultato (cioè i dati ricevuti dalla chiamata Ajax) sarà disponibile solo quando viene eseguita la funzione callback definita per tale chiamata. In altre parole devi fare attenzione a dove/quando usare tale variabile.
Qui un esempio pratico di come recuperare i dati e visualizzarli sulla pagina (ovviamente è uno scenario ipotetico, non so quale sia la tua esigenza e la reale situazione):
.codice:<!DOCTYPE HTML> <html lang="it"> <head> <title>Esempio</title> <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> <script> setInterval(reloadData, 10000); reloadData(); function reloadData() { var result = []; // Definisco la variabile *result*, sarà visibile solo nell'ambito locale di questa funzione reloadData() e chiaramente in tutte le funzioni e gli script interni a questa. $.getJSON('queryMySql.php', function(data) { result = data; // Popolo la variabile *result* (definita prima) passando i dati (convertiti già in array) appena recuperati dalla chiamata AJAX visualizzaOutput( // Posso usare questa variabile per passarla ad eventuali altre funzioni parsingRisultato(result) ) }).fail(function() { visualizzaOutput('Errore lettura dati'); }); } function parsingRisultato(arr){ // Esempio di parsing return arr.length ? '<ul><li>' + arr.join('<li>') + '</ul>': 'Nessun risultato'; } function visualizzaOutput(str){ // Esempio di visualizzazione $('#output').html(str); } </script> </head> <body> Output: <div id="output"></div> </body> </html>
Fai qualche prova, se hai bisogno di chiarimenti chiedi pure.


Rispondi quotando