Citat:
Ursprungligen postat av
ThatJ
Hej!
Jag vill kunna ändra min globala variabel "nyText" till ett annat värde som jag fått genom en AJAX-request. Jag har gjort en callback-funktion och kan "alerta" värdet från insidan av funktionen - dock går det inte utanför.
Jag förstår att AJAX är asynkroniserat, men jag kommer verkligen inte på hur man löser detta.
Stort tack på förhand!
Ajax-kod:
Kod:
$.ajax({
type: 'GET',
url: 'http://JUST_A_LINK_IGNORE_THIS',
success:
function informationData(data) {
$.each(JSON.parse(data), function(imgName,order){
var path_image = order[0].path_image;
imgName = order[0].path_image;
dataReceiver(imgName);
});
}
});
Övrig kod:
Kod:
var nyText;
function dataReceiver(imgName){
nyText = imgName;
//alert(nyText); would have worked
}
dataReceiver();
alert(nyText); //will not work
Förstår inte problemet.
Funkar verkligen inte följande?
[PHP]
var nyText;
$.ajax({
type: 'GET',
url: 'http://JUST_A_LINK_IGNORE_THIS',
success:
function informationData(data) {
$.each(JSON.parse(data), function(imgName,order){
var path_image = order[0].path_image;
imgName = order[0].path_image;
dataReceiver(imgName);
});
}
});
function dataReceiver(imgName){
nyText = imgName;
alert("nytext = " + nyText);
}
[/PHP]
Är det så att du vill vara säker på att nyText verkligen innehåller nåt kan du ju göra anropet synkront genom att lägga till följande:
[PHP]
$.ajax({
type: 'GET',
url: 'http://JUST_A_LINK_IGNORE_THIS',
async :false,
//more code
[/PHP]Så kommer anropet stoppa javascriptexekveringen tills det kommer ett svar från servern, därefter kommer det köra vidare.