riprendo questa discussione perchè sono andato avanti con gli studi ed ora mi manca un ultimo passo:
ho il form che tramite la chiamata ajax passa i dati in post e si aspetta in risposta dati in JSON:
Codice PHP:
<script type="text/javascript">
$('#frm').submit(function() {
var campi = $("#frm").serialize();
$.ajax({
type: "POST",
url: "form_control.php",
data: campi,
dataType: "json",
success: function(msg){
var obj = $.parseJSON(msg);
alert(obj);
alert(msg);
},
error: function(){
alert("Chiamata fallita, si prega di riprovare...");
}
});
});
</script>
Con serialize() preparo la stringa da inviare in POST. In 'form_control.php' effettuo delle verifiche e reinvio dei dati in formato JSON:
Codice PHP:
$arr = array('nome' => $_POST['nome'], 'cognome' => $_POST['cognome']);
echo json_encode($arr);
Il problema che mi rimane è quello di decodificare i dati di ritorno. Pensavo infatti che utilizzando parseJSON avrei potuto manipolare i dati di ritorno. Invece in risposta mi ritrovo:
obj è null
msg è un Object
non ci sono errori nella console javascript quindi di ritorno ho i dati in JSON correttamente.
se passo però di ritorno
Codice PHP:
$arr = array($_POST['nome'], $_POST['cognome']);
echo json_encode($arr);
ottengo:
obj: null
msg = nome,cognome (correttamente quello che ho inserito nel form)
In definitiva come faccio a fare il parsing della stringa di ritorno in JSON?
Io vorrei restituire delle coppie ad esempio: salvato = si, errore = no, ecc.