Autor | Zpráva | ||
---|---|---|---|
Laks Profil * |
#1 · Zasláno: 10. 8. 2012, 16:30:31 · Upravil/a: Laks
Zdravím,
mám následující kód $(function() { var playerList = playerList_fill(); function playerList_fill() { var a; $.post("php/playerList.php", function(data) { a = data.split(","); }); return a; } }); playerList.php obsahuje <?php $array = range(3,5); echo implode(",",$array); ?> Jak jste nejspíš pochopili, neúspěšně se snažím do proměnné playerList uložit pole [3,4,5] získané z php. Pokud a = data.split(","); v anonymní funkci nahradím console.log(data.split(",")); pole se vypíše. Do proměnné se neuloží (ověřováno console.logem za deklarací proměnné). Prosím o pomoc. |
||
Kcko Profil |
#2 · Zasláno: 10. 8. 2012, 16:51:10
To nejde. Bud si tu proměnnou uděláš globální nebo bys musel to vrácení stopnout do té doby, dokud se Ti nevrátí požadavek přes Ajax (což je hodně velký nesmysl).
Proč to potřebujes takhle? |
||
Laks Profil * |
#3 · Zasláno: 10. 8. 2012, 17:00:05
V podstatě jediné co opravdu potřebuju je mít to vrácené pole v proměnné.
|
||
Kcko Profil |
No určitě by to šlo o jinak, ale tak takhle
var playerList; playerList_fill(); // tady uz to bude pripravene playerList; function playerList_fill() { $.post("php/playerList.php", function(data) { playerList = data.split(","); }); } }); |
||
Laks Profil * |
#5 · Zasláno: 10. 8. 2012, 23:03:52
Takhle vrátí console.log umístěný pod voláním funkce playerList_fill undefined.
|
||
Radek9 Profil |
#6 · Zasláno: 11. 8. 2012, 10:19:02
Laks:
AJAX je asynchronní. To znamená, že kód pod tím se provádí nezávisle na tom, jestli už je soubor načtený, nebo ne. Pošli buď synchronní požadavek, nebo s výsledkem pracuj v nějaké callback funkci. |
||
Laks Profil * |
#7 · Zasláno: 11. 8. 2012, 15:43:19
Aha díky
|
||
Časová prodleva: 12 let
|
0