Ho bisogno di serializzare tutti gli input da un modulo in una stringa JSON.
Con l'aiuto di this post, posso creare con successo una stringa valida come di seguito:jQuery: Come interrompere la funzione AJAX di escape della stringa JSON utilizzata per i dati POST
{"input01":"value01","input02":"value02","input03":"value03"}
Tuttavia, quando si tenta di utilizzare la stringa di dati POST utilizzando la funzione Ajax jQuery, sembra aggiungere backslash alla stringa , con conseguente invio della stringa JSON utilizzando GET anziché POST. La pagina PHP caricata restituisce una matrice di $_GET
:
[{\"input01\":\"value01\",\"input02\":\"value02\",\"input03\":\"value03\"}] =>
Ho testato la stringa JSON utilizzando alert()
per confermare la struttura sia corretto prima di essere utilizzato nella funzione AJAX.
Inoltre, se si digita semplicemente manualmente la stringa JSON valida, AJAX registra correttamente i dati.
Il mio codice è il seguente:
var dataJSON = $.toJSON($('#form').serializeObject());
alert(dataJSON);
$.ajax({
type: "POST",
url: "ajax.php",
data: 'Query01=01&Query02=02',
dataType: 'json',
success: function(data){
if (data==1){
$('#wrap').load('ajax.php',dataJSON);
}
}
});
si sta chiamando '.ajax()', poi facendo una nuova richiesta Ajax con '.load()'. È corretto? –
Roatin, è corretto. L'esempio sopra è semplificato dal mio vero copione. Lo script effettivo pubblica i dati utilizzando $ .ajax che deve essere convalidato, se validato correttamente, la funzione $ .load carica l'HTML generato dai dati inviati dalla stringa JSON. – ticallian