从html而不是php调用smarty变量

时间:2014-07-24 00:03:29

标签: php html smarty

HTML CODE:

<html><body>
{section name=a loop=$items}
{$items[a].title}
{include file="/directory/showstuff.html" video=$items[a]}
{/section}
</body> </html>

PHP代码:

  

$ pid = '12';

     

$ items = $ cbvid-&gt; get_channel_items($ pid);

     

分配( '项目',$项目);

这完全正常,整数 12 是我的PHP代码。但是,我想添加整数 12 并从html代码中调用它,但它不起作用。

我试过了:

<html><body>
{section name=a loop=$cbvid->get_channel_items(12)}
{$items[a].title}
{include file="/directory/showstuff.html" video=$items[a]}
{/section}
</body> </html>

但它没有用。我该怎么办?

1 个答案:

答案 0 :(得分:2)

不要这样做。看起来如果您想将业务逻辑移动到表示层 - 这不是Smarty所使用的。事先准备好数据,然后将其交给模板。

但如果您真的想要它可以使用,请使用foreach

<html><body>
{foreach  from=$cbvid->get_channel_items(12) item=video}
{$video.title}
{include file="/directory/showstuff.html" video=$video}
{/foreach}
</body> </html>

它不适用于部分的原因是因为您没有定义$items变量,但是,您仍然试图获得它的价值。这是您需要使用assign

的地方
<html><body>
{assign var="items" value=$cbvid->get_channel_items(12)}
{section name=a loop=$items}
{$items[a].title}
{include file="/directory/showstuff.html" video=$items[a]}
{/section}
</body> </html>

不过,我更喜欢foreach