Terve.
kuinka ihmeessä saan käyttööni muuttujan javascriptissä, jonka lähetän PHP:ssa smartylle ?
Eli asian ydin:
PHP:
$smarty->assign("arvo1", $value); $smarty->display("template_sivu.tpl");
template_sivu.tpl, jossa javascriptiä:
{literal} <script language="JavaScript"> var js_muuttuja = {literal}{$arvo1}{/literal}; </script> {/literal}
Hölmömpi voisi luulla, että tämä toimii, mutta muuta tulosta ei tule, kuin virhelogiin tieto: syntax error: unidentified token '{' (Smarty_Compiler.class.php, line 1405)
Se varmaan kertoo myös viallisen template-rivin numeron, vai kuinka?
Arvon tulostuksen ympärillä haluat sulkea tagin ja avata taas uudestaan, nyt /-merkki on väärässä paikassa. Syntaksin helpottamiseksi kannattaa ehkä harkita muuttujien tulostusta ilman literal-tageja jossain erillisessä paikassa ja vain muun JS-koodin sijoittamista literal-tageihin, jottei tarvitse availla ja sulkea tageja jatkuvasti.
var x = {$x}, y = {$y}, teksti = "{$teksti}"; {literal} function f() { while (1) { //... } } {/literal}
Tämä on ehkä turhaakin rautalankaa, mutta tässä Metabolixin mainitsema virhe korjattuna alkuperäiseen koodiin:
{literal} <script language="JavaScript"> var js_muuttuja = {/literal}{$arvo1}{literal}; </script> {/literal}
Kiitos oikein paljon!
Aihe on jo aika vanha, joten et voi enää vastata siihen.