2011-01-04 28 views
23

sto usando questo codice jQuery:più valori di ritorno da PHP con jQuery AJAX

$.ajax 
({ 
    type: "POST", 
    url: "customerfilter.php", 
    data: dataString, 
    cache: false, 
    success: function(html) 
    { 
     $(".custName").html(html); 
    } 
}); 

Come posso fare qualcosa di simile: $(".projDesc").html(html1); così posso dividere i risultati restituiti in due elementi HTML?

echo "<p>" .$row['cust_name']. "</p>"; 

questo è il PHP sto usando e voglio eco un'altra dichiarazione che posso mettere in un altro elemento HTML

Ha senso?

risposta

54

Utilizzare json_encode() per convertire un array associativo da PHP a JSON e utilizzare $.getJSON(), che restituirà un array Javascript.

Esempio:

<?php echo json_encode(array("a" => "valueA", "b" => "valueB")); ?> 

in JavaScript:

$.getJSON("myscript.php", function(data) { 
    alert("Value for 'a': " + data.a + "\nValue for 'b': " + data.b); 
}); 
+0

Fantastico! Grazie mille per l'ottimo suggerimento! :) – drpelz

+1

Usi il .getJson all'interno della funzione di successo del post dell'ajax o completamente separato da esso? – Arken

+0

@Arken Non sono sicuro di cosa intendi. 'getJSON()' accetta un URL e una funzione di gestione del successo che riceve i dati decodificati come argomento. Non è necessario richiamarlo di nuovo nel gestore, poiché la richiesta è già stata eseguita. –

3

Perché non si restituisce un oggetto JSON. In questo modo puoi facilmente inserire molti risultati diversi all'interno della risposta ajax.

41

Fai la tua risposta JSON ritorno, avrete bisogno di cambiare il vostro jQuery per questo, quindi il tipo di dati previsto è JSON:

$.ajax 
({ 
    type: "POST", 
    url: "customerfilter.php", 
    dataType: 'json', 
    cache: false, 
    success: function(data) 
    { 
     $(".custName").html(data.message1); 
     $(".custName2").html(data.message2); 
    } 
}); 

Quindi è necessario codificare la risposta come array JSON:

<?php echo json_encode(
     array("message1" => "Hi", 
     "message2" => "Something else") 
) ?> 
+0

: json, dovrebbe essere dataType: "json" ma grazie! – benhowdle89

+0

corretto, grazie. –

+1

Dovrebbe essere dataType: 'json'. Ti mancano le virgolette. – Stephen305