Problema jQuery + PHP + AJAX
Taggato: ajax, jquery, php, variabili di ritorno ajax
- Questo topic ha 15 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 7 anni, 3 mesi fa da
Valerio Radice.
- AutorePost
- 30 Giugno 2016 alle 10:27 #6980
dlivi
PartecipantePasso 1: hai controllato l’outpu del PHP prima di usarlo come ajax? è giusto? hai messo la stringa header aplication/json visto che stai facendo una chiamata json^? (all’inizio della pagina
<pre class=””lang-php crayon-selected” prettyprint=”” prettyprinted=””>
l’output php è corretto, dati in formato json ; {“user_db”:”test”,”password_db”:”test”};
sono andata direttamente nel browser e ho aperto la pagina con http://mioindirizzo/permessi-json.phpl’output del console.log success è : {“user_db”:”test”,”password_db”:”test”};
fino a qui dovrebbe essere tutto corretto, confermi????
il problema è che se dichiaro due variabili, mettiamo x e y, fuori dallo script AJAX(per capirsi dentro $(document).ready()), per poi richiamarle dentro al success … es;
success: function(data){ x = data.user_db; y = data.password_db;}se stampo con un semplice alert(x) o alert(y), le variabili non sono valorizzate…
eppure le dichiaro prima e le valorizzo al success, giusto?? cosa sbaglio?????????????30 Giugno 2016 alle 12:28 #6981Valerio Radice
PartecipanteFai sta cosa, appena dentro a succes metti data=JSON.parse(data);
x=data.user_db;
alert(x);
30 Giugno 2016 alle 13:34 #6982dlivi
Partecipanteerrore in console : ” Uncaught ReferenceError: data is not defined ”
il codice completo è questo;
$.ajax({
type: “POST”,
url: path+”permessi-json.php”,
data: ‘id_user_session=1’,
success: function(data){
data=JSON.parse(data);
},
error: function(){
alert(‘la chiamata è fallita’);
}
});var x = data.user_db;
alert(x);solita storia se var x = “”; lo metto prima di $.ajax
e dopo lo chiamo con x = data.user_db;
alert(x);30 Giugno 2016 alle 15:36 #6983Valerio Radice
PartecipanteTutto quello che metti fuori dalla success non esiste!!!!! se vuoi fare qualcosa devi farlo dopo la SUCCESS e da li dentro, non sotto fuori, temporalmente esegui prima la stampa e dopo X tempo ricevi i dati, quindi usi qualcosa che non c’è!
$.ajax({
type: “POST”,
url: path+”permessi-json.php”,
data: ‘id_user_session=1’,
success: function(data){console.log(“oggetto data prima del parse\n”,data);
data=JSON.parse(data);console.log(“oggetto data dopo il parse\n”,data);
//esegui una nuova funzione qui passandogli dentro data, la funzione la dichiari anche prima o dopo , tanto è in differita
//faiqualcosa(data);
},
error: function(){
alert(‘la chiamata è fallita’);
}
});function faiqualcosa(ogg){
//qua dentro ogg contiene il tuo data!fai ciò che vuoi
}
se non ti va così teamviewer e skype…valix85 dopo le 20.30/21
30 Giugno 2016 alle 19:41 #6984dlivi
PartecipanteOk funziona.. Ho dovuto aggiustarla un po’ ma alla fine riesco a recuperare quello che mi interessa…
grazie del tuo prezioso tempo! Ciao(al prossimo problema😅)
30 Giugno 2016 alle 21:08 #6985Valerio Radice
PartecipanteDi nulla 🙂
- AutorePost
- Devi essere connesso per rispondere a questo topic.