2010-05-04 2 views
2

здесь в index.tplумника назначить яваскрипт внешнего

здесь в javas.js

var currentTS = "{literal}{$userid}{/literal}"; 
alert(currentTS); 

но будет начеку {literal}{$userid}{/literal} не $userid. любая идея?

+0

и я забыл упомянуть. вы хотите, чтобы вы поместили двойные кавычки «вокруг» только в том случае, если вы хотите получить строковое значение, если это целое число, которое из имени переменной кажется уникальным ключом для вас, вам лучше не ставить никаких кавычек. – Neo

ответ

2

Включите javascript-файл в свой index.tpl. Если у вас есть за пределами директории шаблона необходимо использовать file:/... обозначения (и использовать свой собственный путь, в Куре):

<html> 
    <head 
    <script type='text/javascript'> 
    {include file='file:/home/www/mydomain/public_html/js/javas.js'} 
    </script> 

, если у вас есть в вашем шаблоне diretory просто:

<html> 
    <head 
    <script type='text/javascriptä> 
    {include file='javas.js'} 
    </script> 

сейчас Smarty должен разобрать и скомпилировать его.

Кроме того, мне кажется, что вы ошибаетесь {literal}{/literal}. Если вы используете фигурные скобки в ваших JS файл, который вы должны начать JS с {буквального} тегом и «unliteralize» в Smarty переменных:

{literal} 
function test() { 
    var name = '{/literal}{$name}{literal}'; 
    // do something 
} 
{/literal} 
0

Не используйте {} буквального Вам не нужно Вот.

{literal} заставляет отображать все {как они есть и не разбирать смарт-код. Поэтому {$ userid} будет отображаться, как есть.

Нет смысла показывать это в том месте, где вы находитесь.

5

Smarty работает только под php, вы не можете запустить его в .js, если вы не добавите .js в php-расширения в конфигурациях apache.

Кроме того, мне кажется, что вы пытаетесь получить доступ к переменной {$ userid} из вашего index.php. Это никогда не произойдет! если вы не включите сторону файлового сервера, как объясняет karvonen. И ваши {literal} теги не нужны, вы начинаете буквально, когда будете использовать { и }, которые не являются яркими тегами, но для javascript, css и т. Д. и единственный раз, когда вы видите их вокруг смарт-тегов, это наоборот, поскольку karvonen объяснил

вот мое предложение: в вашем index.tpl прямо перед включением файла java.js сделать это:

<!--index.tpl--> 
<script type='text/javascript'>UserID = '{$userid}';</script> 
<script type='text/javascript' src='pathto/java.js'></script> 



/*java.js*/ 
var currentTS = UserID; 
alert(currentTS); 
+0

Thanks.Worked fine! –