Ultima modifica:
Mi è venuto in mente di realizzare questa piccola guida per mostrare alcuni metodi di come gestire i dati tramite json utilizzando l'ajax di jquery e il php dato che mi è stato molte volte utile
Bene, quali sono i vantaggi? Il vantaggio è principalmente la possibilità di trasferire e interpretare strutture di dati in modo decisamente migliore in confronto ad una suddivisione manuale che richiederebbe più tempo.
Ecco alcuni esempi di utilizzo
Ricordo che puo essere interpretato come array nel caso manchi la chiave
In questi esempi ho fatto in modo che si vedessero i differenti modi di utilizzo, dal riportare i valori di una query all'interpretare differenti array trasformati
Ora possiamo anche fare l'inverso, ma non è molto utile dato che è meglio passare i valori come variabili direttamente
Se ho dimenticato qualcosa o commesso qualche errore ditemelo
Bene, quali sono i vantaggi? Il vantaggio è principalmente la possibilità di trasferire e interpretare strutture di dati in modo decisamente migliore in confronto ad una suddivisione manuale che richiederebbe più tempo.
Ecco alcuni esempi di utilizzo
Codice:
function AjaxJSON(data){
$.ajax({
type: 'GET', //get o post a seconda di come volete gestire i dati inviati
url: 'json.php',
data: data,
success: function(json){
json = jQuery.parseJSON(json);
$('#risposta').html("Valore: "+json.valore);
}
});
}
PHP:
$array = array( 'prova' => 'test', 'valore' => 'ciao');
echo json_encode($array);
Codice:
function AjaxJSON(id){
$.ajax({
type: 'POST',
url: 'json.php',
data: 'id='+id,
success: function(json){
json = jQuery.parseJSON(json);
$('#risposta').html("User: "+json.user+"<br> Mail: "+json.mail+"<br> Altro: "+json.altro);
}
});
}
PHP:
$m = mysql_query("SELECT * FROM users WHERE id=".(int)$_POST['id']) or die(mysql_error());
echo json_encode(mysql_fetch_array($m)); //passo i dati direttamente come array
Codice:
function AjaxJSON(dati){
$.ajax({
type: 'POST',
url: 'json.php',
data: dati,
success: function(json){
json = jQuery.parseJSON(json);
$('#risposta').html("Dati primari: "+getData(json.dati_primari)+"<br> Dati secondari: "+getData(json.dati_secondari)+"<br>Dati finali: "+getData(json.dati_finali));
}
});
}
function getData(jsn){
var end='';
for(var i=0; i<jsn.length; i++)
end += (i!=0)?'-'+jsn[i]:jsn[i]; //controllo che non sia 0 per mettere il segnetto divisore
return end;
}
Ricordo che puo essere interpretato come array nel caso manchi la chiave
PHP:
$array = array( 'dati_primari' => array('ciao','lol','asd'), 'dati_secondari' => array('cane','gatto','volpe'), 'dati_finali' => array('prova','test','end'));
echo json_encode($array);
In questi esempi ho fatto in modo che si vedessero i differenti modi di utilizzo, dal riportare i valori di una query all'interpretare differenti array trasformati
Ora possiamo anche fare l'inverso, ma non è molto utile dato che è meglio passare i valori come variabili direttamente
Codice:
function AjaxJSON(){
var json= '{"prova" : "lol","prove" : ["prima","seconda","terza"]}';
$.ajax({
type: 'POST',
url: 'json.php',
data: 'json='+json,
success: function(result){
$('#risposta').html("Valore prova: "+result);
}
});
}
PHP:
$result = json_decode($_POST['json']);
echo $result->prova;
Se ho dimenticato qualcosa o commesso qualche errore ditemelo