2009-02-05 20 views
6

Estoy trabajando en una aplicación que haría una solicitud POST ajax a un script PHP en mi servidor. El script consultaría la base de datos y devolvería una fila de registros, como una matriz. (Una matriz para cada fila, que contiene elementos como id, título, etc.). Luego quiero usar json_encode() para codificar esta matriz, y devolverla al javascript que la usará para mostrar los registros.¿Cómo usar JSON con Jquery?

1) ¿Cómo puedo devolver la cadena codificada JSON al javascript? 2) ¿Cómo va el javascript a recorrer las filas y acceder a sus campos?

Respuesta

11

Para obtener JSON con jQuery, simplemente use jQuery.getJSON(). Alternativamente, puede usar cualquier otra herramienta AJAX y luego simplemente eval() el json para obtener un objeto javascript.

Para bucle a través de una matriz, que suelen utilizar jQuery.each():

var recordList = yourMethodToGetRecordListWithAjax(); 

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

Hay un pequeño error en su respuesta, debe haber jquery.each $ each. Aparte de eso, funciona bien :) –

+0

Aquí está mi código: $ .getJSON ("getData.php", data, myFunctionToLoopThroughResults); –

+3

$ es un atajo para jQuery - Prefiero escribir jQuery para cosas "estáticas" como cada() y uso $ para cosas "no estáticas" como consultas ya que creo que mejora la legibilidad. –

0

Puede devolver la cadena JSON codificado a la JS haciendo eco con un tipo de contenido de la aplicación/JSON.

Consulte la respuesta anterior para el resto.

3

1) en el script php:

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

2) en el 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