Autor Zpráva
Laks
Profil *
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
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 *
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 *
Takhle vrátí console.log umístěný pod voláním funkce playerList_fill undefined.
Radek9
Profil
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 *
Aha díky

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: