| Autor | Zpráva | ||
|---|---|---|---|
| nethor Profil |
#1 · Zasláno: 18. 12. 2015, 19:02:51
Zdravím,
potřebuji, aby mi funkce vracela obsah depozitu dotazem přes Ajax: function GetDepozit(IdDepozit){
var ContentDepozit ;
$.get("Ajax.php" , {Depozit : IdDepozit} , function(Result){
ContentDepozit = Result ;
}) ;
return ContentDepozit ;
}Tady jsem našel řešení podobného problému, ale nevím, jak ho aplikovat na tento případ. (Funkce v parametru jiné funkce.) Jak na to? |
||
| Dan Charousek Profil |
#2 · Zasláno: 18. 12. 2015, 19:20:00
nethor:
Problém je v tom, že ajax je asynchronní. Vytvoří se HTTP požadavek (řádek 3), ale nečeká se na něj a rovnou se provádí řádek 6, jenže v tu chvíli, kdy vracíš proměnnou ContentDepozit v ní nic není. Funkci, která má zpracovat data z AJAXU musít volat uvnitř té anonymní funkce (řádek 4). |
||
| yFang Profil |
#3 · Zasláno: 18. 12. 2015, 19:52:38
nethor:
Můžeš si z té funkce vracet promise a pak ten callback na to navěsit, kde potřebuješ. function GetDepozit(IdDepozit) {
return $.get("Ajax.php" , {Depozit : IdDepozit});
}
// ---
GetDepozit(1).done(function(Result) {
console.log(Result);
}); |
||
| nethor Profil |
#4 · Zasláno: 18. 12. 2015, 20:47:16
Dan Charousek:
Díky za nakopnutí. Že může být problém v asynchonosti, mi nedošlo. .. a vysvětluje to dílčí úspěchy, když jsem script trasoval přes alert(). yFang: Skvěle, tenhle postup v podstatě můj problém řeší. Děkuju. |
||
|
Časová prodleva: 10 let
|
|||
0