2010-03-27 10 views
6

Tengo una solicitud jquery/ajax simple para el servidor que devuelve la estructura y los datos de una matriz. Me preguntaba si había una forma rápida de usar esta estructura de matrices y datos usando jquery;utilizando una matriz PHP print_r resultado en javascript/jquery

Una solicitud simple;

var token = $("#token").val(); 
$.ajax({ 
    type: 'POST', url: './', data: 'token=' + token + '&re=8', cache: false, timeout: 5000, 
    success: function(html){ 
     // do something here with the html var 
    }       
}); 

el resultado (resultado real de PHP's print_r(););

Array 
    (

     [0] => Array 
      (
       [username] => Emmalene 
       [contents] => 
           <ul><li class="name">ACTwebDesigns</li><li class="speech">helllllllo</li></ul> 
           <ul><li class="name">ACTwebDesigns</li><li class="speech">sds</li></ul> 
           <ul><li class="name">ACTwebDesigns</li><li class="speech">Sponge</li><li class="speech">dick</li></ul> 
           <ul><li class="name">ACTwebDesigns</li><li class="speech">arghh</li></ul> 
      ) 

    ) 

Estaba pensando en la línea de

var demo = Array(html); // and then do something with the demo var 

No estoy seguro si eso funcionaría sólo vino a la mente.

Cualquier ayuda es muy apreciada.

Respuesta

3

Use JSON. JSON es un formato liviano de intercambio de datos que facilita la transferencia de datos entre diferentes lenguajes de programación.

Uso json_encode en PHP para codificar los datos:

echo json_encode($array); 

Y en jQuery, define que el resultado está en JSON formato y jQuery analizará automáticamente como tal:

$.ajax({ 
    type: 'POST', 
    url: './', data: 'token=' + token + '&re=8', 
    cache: false, 
    timeout: 5000, 
    dataType: 'json', 
    success: function(obj) { 
     // obj is now the same array as JS object: 
     $.each(obj, function(index, row) { 
      alert(row.username); 
     });    
    }       
}); 
+0

lo siento, solo puedo votar uno por la respuesta, pero gracias a todos. Otra cosa (realmente soy malo para javascript) ¿cómo recorro los resultados? –

+1

@Phil Jackson, modifiqué mi respuesta para incluir un ejemplo de bucle a través de los resultados usando el método 'each()' de jQuery. –

+0

eres un buen hombre! –

1

Uso json_encode() . Convierte la matriz en datos JSON que se pueden utilizar directamente en Javascript.

1

Puede usar json_encode en su script PHP. Esto devolverá una información codificada JSON que puede usar directamente en javascript:

$.ajax({ 
    type: 'POST', 
    url: './', 
    data: { token: token, re: '8' }, 
    cache: false, 
    timeout: 5000, 
    success: function(data){ 
     // data will already be a javascript object that you can manipulate 
    }       
}); 
+0

'data' no será un objeto javascript a menos que especifique' dataType: 'json''. –

+1

Será si el servidor envía el tipo de contenido correcto: 'Content-Type: application/json'. –

+0

No he escrito un tipo de contenido ni un tipo cambiado a 'json', pero igual devuelve la alerta correcta (JSON_array [0] .nombre de usuario); devuelve emmalene –

Cuestiones relacionadas