2010-03-27 11 views
6

Ho una semplice richiesta jquery/ajax al server che restituisce la struttura e i dati di un array. Mi stavo chiedendo se ci fosse un modo rapido in cui posso usare questa struttura di array e dati usando jquery;utilizzando un risultato di matrice print_r PHP in javascript/jquery

Una richiesta semplice;

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 
    }       
}); 

il risultato (risultato effettivo da print_r();) di PHP;

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> 
      ) 

    ) 

Stavo pensando lungo le linee di

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

Non sono sicuro se questo avrebbe funzionato solo balzò in mente.

Qualsiasi aiuto è molto apprezzato.

risposta

3

Utilizzare JSON. JSON è un formato di interscambio dati leggero che semplifica il trasferimento dei dati tra diversi linguaggi di programmazione.

Usa json_encode in PHP per codificare i dati:

echo json_encode($array); 

E in jQuery, definire che il risultato è in formato JSON e jQuery verrà automaticamente analizzare come tale:

$.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

scusa posso solo votare uno per la risposta ma grazie a tutti. Un'altra cosa (sono davvero un javascript cattivo) come faccio a scorrere i risultati? –

+1

@Phil Jackson, ho modificato la mia risposta per includere un esempio di looping dei risultati usando il metodo 'each()' di jQuery. –

+0

sei un brav'uomo! –

1

Usa json_encode() . Trasforma la matrice in dati JSON direttamente utilizzabile in Javascript.

1

È possibile utilizzare json_encode nello script PHP. Ciò restituirà un dato codificato JSON che è possibile utilizzare direttamente in 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' non sarà un oggetto javascript a meno che non si specifichi' dataType: 'json''. –

+1

Lo sarà se il server invia il tipo di contenuto corretto: 'Content-Type: application/json'. –

+0

Non ho scritto un tipo di contenuto, né cambiato il tipo in "json", ma ritorna comunque correttamente (JSON_array [0] .username); ritorna emmalene –

Problemi correlati