Domanda

Sto cercando di utilizzare un $ .post () nel seguente modo:

$.post("file.php", { file_id: $(this).val()}, function(data){...} Il file.php poi fa una query di database e restituisce un array con un riferimento titolo, descrizione e immagine.

Quello che voglio fare è quindi in grado di aggiornare il .val() per i campi modulo per ciascuno. Capisco come fare questo su una sola variabile, sarebbe solo il seguente:

$.post("file.php", { file_id: $(this).val()}, function(data){ 
   $('#title').val(data);
}

Ma, come faccio ad ottenere i dati restituiti per essere riconoscibili in jQuery sia come variabili separate o come un array?

Grazie in anticipo

È stato utile?

Soluzione

la documentazione per $ .post . Il quarto parametro è il tipo di dati. È possibile impostare questo per JSON per i dati di ritorno da analizzare in un oggetto JavaScript o un array.

$.post(
   "file.php", 
   { file_id: $(this).val() }, 
   function(data){ $('#title').val(data.title); $('#para').val(data.paragraph); },
   'json');

Nel file file.php, si può fare qualcosa di simile

<?php
$return_data=array('title'=>'Fishes Go To Market','paragraph'=>'Lots of stuff');

header('Content-Type: application/json');
echo json_encode($return_data);
exit();

Assicurati di includere l'intestazione () in modo jQuery conosce i dati dovrebbe essere JSON, e per l'uso json_encode per cui è formattato correttamente.

Vedere le json_encode documentazione per maggiori informazioni su questo, e il docs sull'intestazione . Ricordate, non si può avere qualsiasi altra uscita venire prima l'intestazione () e la stampa dei dati json_encoded, o l'intestazione e il JSON non sarà valido.

Altri suggerimenti

Il modo più semplice è quello di passare di nuovo i valori come JSON. Sarà necessario convertire il vostro array JSON sul server (ci sono un sacco di librerie lato server disponibili per questo ). E modificare il metodo di .post() per restituire i dati come JSON con l'aggiunta di un quarto parametro, come:

$.post("file.php", { file_id: $(this).val()}, function(data) { ... }, "json");

È possibile quindi popolare le variabili facilmente come:

$('#title').val(data.title);
$('#description').val(data.description);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top