Autor Zpráva
Alalala
Profil
Zdravím,

vím, že zakládám téma, ke kterému bylo řečeno již mnohé, ale nikde jsem se nedočetl odpověď na konkrétně můj problém. Pomocí šablonovacího systému SMARTY zobrazuju html šablony, do kterých nahrávám obsah z php. Šablony pochopitelně pro něco využívají i JavaScript. No a o co jde mě. Nahraju si (v php) údaje z DB (pole: id položky, popis, gps souřadnici x, y, atd. Těch položek je pochopitelně víc.) a potřeboval bych to pole předat do JS, kterej mi ovládá mapu a zobrazení bodů v ní.

Takže otázka jednoduše: Lze nějak předat pole z php do JS?

Trochu problém mi do celé věci přináší ještě to, že s JS pracuju jen v těch šablonách a s php jen mimo ně. Proto jsem našel poměrně pěkné řešení v tom, že do toho obsahu z php, který zobrazuji v dané šabloně rovnou přidám ...<script>nejakaJSFce(".$pole.");</script>..., ale to bohužel pro pole nefunguje. V podstatě jestli to správně chápu to může fungovat jen pro textové věci - pro předání OBSAHU proměnné jako parametru té JS fce. Ne pro předání TÉ DANÉ fce.

Díky.
Sir Tom
Profil
Alalala:
Také zdravím, tak to v PHP ulož do COOKIE a v JS tu COOKIE přečti. Anebo ještě lépe pomocí PHP vypiš kód JS.

$this->code = "var s = 'Nějaký text!';";
$smarty->assign("code", $this->code); // nebo tak nějak to je (už si nepamatuji, jak se předává proměnná do šablony)

a ve smarty:

<script>
{$code}
</script> 
Alalala
Profil
Sir Tom:
Jo takhle - ty myslíš úplně se vyhnout JS souboru - celej JS naklikat v php a pak ho prostě naprat do tý šablony, kde už bude fungovat. To mě vůbec nenapadlo - samozřejmě by to mělo fungovat. Sice jsem měl v plánu využít funkcí, které si napíšu v JS, ale dost podobné fce si v podstatě můžu napsat i v php (jen bude jejich "vedlejší" funkcí to, že mi budou tvořit kód JS). A v php stejně píšu raději...:-) Zkusím a ozvu se, díky.
Sir Tom
Profil
Alalala:
JS funkce si klidně používej v externích souborech, ale data, se kterými ty funkce budou pracovat si phpkem vypiš přímo do db.
Alalala
Profil
Uvědomil jsem si, že jsem slíbil, že dám vědět, jak jsem dopadl. Asi jsem to neudělal úplně MVC (asi určitě ne...;-), ale funguje to skvěle. Data, se kterými potřebuji pracovat pomocí JS si vypíši do proměnné v php (např. jako parametry JS fce) a tu pak nechám zobrazit do šablony. To co jsi psal s db, Sire Tome, by určitě bylo elegantnější řešení, ale nebylo by zas na druhou stranu o hodně pomalejší? Řídím se tím, že když se (ne moc prasácky, samozřejmě) můžu vyhnout tahání dat z db, udělám to. Seskládání a zobrazení proměnné je určitě ryhlejší, než práce s db. Ale samozřejmě vycházím z toho, že data potřebuji jen jednou a tady. Díky za rady - nakopnul jsi mě k jednoduchému řešení...
1Pupik1989
Profil
Pokud chceš v js pole z php, tak bych zavolal funkci stejně jako si to měl, akorát bych pole prohnal json_encode.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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