2009-02-05 12 views
6

Sto lavorando a un'app che farebbe una richiesta POST ajax a uno script PHP sul mio server. Lo script interrogherà il database e restituirà una riga di record, come una matrice. (Una matrice per ogni riga, contenente elementi come id, titolo, ecc.). Quindi voglio usare json_encode() per codificare questo array e passarlo nuovamente al javascript che lo userà per visualizzare i record.Come usare JSON con Jquery?

1) Come posso restituire la stringa codificata JSON su javascript? 2) Come farà il javascript a scorrere le righe e ad accedere ai loro campi?

risposta

11

Per ottenere JSON con jQuery, utilizzare solo jQuery.getJSON(). In alternativa, puoi usare qualsiasi altro strumento AJAX e quindi eval() per ottenere un oggetto javascript.

Per scorrere un array, io di solito uso jQuery.each():

var recordList = yourMethodToGetRecordListWithAjax(); 

jQuery.each(recordList, function() 
{ 
    alert(this.Name); // For example 
}); 
+0

C'è un piccolo errore di battitura nella sua risposta, jquery.each dovrebbe essere $ .each. Diverso da quello che funziona bene :) –

+0

Ecco il mio codice: $ .getJSON ("getData.php", data, myFunctionToLoopThroughResults); –

+3

$ è una scorciatoia per jQuery - Preferisco scrivere jQuery per cose "statiche" come each() e usare $ per le cose "non statiche" come le query poiché credo che aumenti la leggibilità. –

0

È possibile restituire la stringa JSON codificata alla JS da eco con un Content-Type di applicazione/JSON.

Vedere sopra la risposta per il resto.

3

1) nello script php:

$return["foo"] = "bar"; 
$return["blah"] = "bleg"; 
print json_encode($return); 

2) in javascript:

  $.ajax({ 
        type: "POST", 
        url: URL, 
        cache:false, 
        data: values, 
        dataType:'json', 
        success: function(json) 
        { 
        var foo = json.foo; 
        if (json.blah == "bleg") 
        { 
         // do stuff 
        } 

        } // end success function 
       });  // end ajax call