вставка foreach в JS

#1 5 мая 2011 в 20:22
Здравствуйте.
Возник такой вопрос. Как можно в шаблоне вставить в JS результат smarty foreach? Облазив офф источник smarty не чего не нашел…

Если кто то решал эту проблему прошу помочь…
Спасибо за ранее.
#2 5 мая 2011 в 20:46
script language="JavaScript">
function foo() {ldelim}
… code {$varSmarty}...
{rdelim}
</script
соответственно сам скрипт не заключаем в {literal}… {/literal} а все “фигурки” в js меняем на {ldelim}{ldelim}
#3 5 мая 2011 в 21:08
js редактор съедает пишите без открывающей и закрывающей угловой в теге, типа… sсript>
#4 5 мая 2011 в 21:08
вот если у меня код такой JS в tpl.
ript type="text/javascript">
jwplayer("container").setup({
flashplayer: "/upload/players/video/player.swf",
playlist: [

],
"playlist.position": "bottom",
"playlist.size":100,
height: 400,
width: 500
});
ript>
Сюда
  1.  
  2. playlist: [
  3.  
  4. ],
  5.  
мне надо вставить следующие вывод в шаблон
  1.  
  2. {foreach key=tid item=file from=$filesmp3}
  3. {$file.playermp3}
  4. {/foreach}
  5.  
Если я правильно вас понял я должен все просто вставить это так просто.


ript type="text/javascript">
jwplayer("container").setup( {ldelim}
flashplayer: "/upload/players/video/player.swf",
playlist: [
{foreach key=tid item=file from=$files}
{$file.player}
{/foreach}
],
"playlist.position": "bottom",
"playlist.size":100,
height: 400,
width: 500
{ldelim});
ript>

Если не так то помогите поправить пожалуйста.

Спасибо за ранее.
#5 5 мая 2011 в 21:19
по идее да…
только тут наверное не нужно двумерного массива
  1.  
  2. {foreach from=$filesmp3 item=file}
  3. "{$file.playermp3}",
  4. {/foreach}
  5.  
#6 5 мая 2011 в 21:22
и кавычки разделитель после "{$file.playermp3}",
#7 5 мая 2011 в 21:22
Не так не прокатило :(
#8 5 мая 2011 в 21:36
Вы пытаетесь заполнить JS-массив, но забываете о двух вещах:
1. элементы в массиве нужно отделять запятыми, кроме последнего
2. заполняете судя по всему строка, соответсвенно они должны быть в кавычках

как-то так наверно получится:

  1.  
  2. script type="text/javascript">
  3. jwplayer("container").setup( {ldelim}
  4. flashplayer: "/upload/players/video/player.swf",
  5. playlist: [
  6. {foreach key=k item=file from=$files}
  7. '{$file.player}'{if $k<sizeof($files)-1},{/if}
  8. {/foreach}
  9. ],
  10. "playlist.position": "bottom",
  11. "playlist.size":100,
  12. height: 400,
  13. width: 500
  14. {ldelim});
  15. </script
  16.  
#9 5 мая 2011 в 21:37
Я когда заполняю все нормально… он мне просто не открывает ту страницу и выдает 500 ошибку как я бы не делал…
#10 5 мая 2011 в 21:38
ну шаблон при всем желании не может вызвать 500-ю ошибку
#11 5 мая 2011 в 21:40


Вы пытаетесь заполнить JS-массив, но забываете о двух вещах:
1. элементы в массиве нужно отделять запятыми, кроме последнего
2. заполняете судя по всему строка, соответсвенно они должны быть в кавычках

как-то так наверно получится:

  1.  
  2. script type="text/javascript">
  3. jwplayer("container").setup( {ldelim}
  4. flashplayer: "/upload/players/video/player.swf",
  5. playlist: [
  6. {foreach key=k item=file from=$files}
  7. '{$file.player}'{if $k
  8.  

Администратор

Вот что показывает после того как я сделал по вашему.
  1.  
  2.  
  3. jwplayer("container").setup({
  4. flashplayer: "/upload/players/video/player.swf",
  5. playlist: [
  6. '' ''
  7. ],
  8. "playlist.position": "bottom",
  9. "playlist.size":100,
  10. height: 400,
  11. width: 500
  12. });
  13.  
  14.  
  15.  
Взято с просмотра страницы…
#12 5 мая 2011 в 21:46
Все спасибо вам большое… Все получилось…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.