smarty模板中,js中怎么嵌套foreach或section循环? 可以在php里面用json_encode 转化为json后再传给smarty , js 解析json输出就简单多了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 {foreach item=lop from=$tuan } box.add({"url":"./upload/admin/{$lop.image}","title":"{$lop.title}"}); {/foreach}这个循环可以通过php来封装,将值传到模板即可。 此言有理。要么通过php来封装,将值传到模板即可;要么通过js函数来封装,将值传到模板,确定是否执行此函数。 大哥,没用过json_encode,json,任务有点赶。帮人帮到底,写点具体的代码,谢谢! 例子,自行改下就行。var json='[{"id":12,"name":"aa"},{"id":13,"name":"bb"}]'; // json对象来自php的json_encode var obj=eval(json) for(var i=0; i<obj.length; i++) { document.write(obj[i].id+" " + obj[i].name); } <script> var box =new PPTBox(); var json='[{"url":"images/tu1.jpg","title":"悬浮提示标题1"},{"url":"images/tu2.jpg","title":"悬浮提示标题1"},{"url":"images/tu3.jpg","title":"悬浮提示标题1"},{"url":"images/tu4.jpg","title":"悬浮提示标题1"}]'; var obj=eval(json) box.width = 1250; //宽度 box.height = 490;//高度 box.autoplayer = 3;//自动播放间隔时间 //box.add({"url":"图片地址","title":"悬浮标题","href":"链接地址"}) for(var i=0; i<obj.length; i++){ document.write('box.add({"url":'+'"'+obj[i].url+'"'+","+'"title":'+'"'+obj[i].title+'"'+"});"); } box.show(); </script>我照着你的例子试着改了改,想在能正确输出我要想的格式了,但它是直接在网页上输出了数据。js不能读取,请问应该怎么写呢? for(var i=0; i<obj.length; i++){ 'box.add({"url":'+'"'+obj[i].url+'"'+","+'"title":'+'"'+obj[i].title+'"'+"});";}这么写,但是还还是没有效果啊! for(var i=0; i<obj.length; i++) { box.add({"url":'"'+obj[i].url+'"',"title":'"'+obj[i].title+'"'}); } 我遇到了跟楼主一样的问题我使用了一个笨办法。就是用{literal}{/literal}挨个把变量和js代码分隔开。完整代码如下<!-- {if $recommend_product} --> <script type="text/javascript" src="../images/pptBox.js"></script> <script> {literal} var box =new PPTBox(); box.width = 223; //宽度 box.height = 123;//高度 box.autoplayer = 3;//自动播放间隔时间 {/literal} <!-- {foreach from=$recommend_product name=recommend_product item=product} --> {literal} box.add({"url":"{/literal}{$product.thumb}{literal}","href":"{/literal}{$product.url}{literal}","title":"{/literal}{$product.name}{literal}"});{/literal} <!-- {/foreach} --> {literal} box.show(); {/literal} </script> <!-- {/if} --> 求大神指教 文件上传问题 什么PHP代码能远程控制服务器(Linux),急!急!急! 我头晕了 这个是怎么回事 php如何过滤特殊字符 四月一号是偶和老婆共同的生日,散分啦 在线等解决 LINUX下上传图片的问题,大家帮忙看看啊 Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 图片存入mysql时存在的问题,高手请解 MySQL 急救!!! 请教关于preg_replace替换的问题 XML解析
box.add({"url":"./upload/admin/{$lop.image}","title":"{$lop.title}"});
{/foreach}这个循环可以通过php来封装,将值传到模板即可。
var json='[{"id":12,"name":"aa"},{"id":13,"name":"bb"}]'; // json对象来自php的json_encode
var obj=eval(json)
for(var i=0; i<obj.length; i++)
{
document.write(obj[i].id+" " + obj[i].name);
}
<script>
var box =new PPTBox();
var json='[{"url":"images/tu1.jpg","title":"悬浮提示标题1"},{"url":"images/tu2.jpg","title":"悬浮提示标题1"},{"url":"images/tu3.jpg","title":"悬浮提示标题1"},{"url":"images/tu4.jpg","title":"悬浮提示标题1"}]';
var obj=eval(json)
box.width = 1250; //宽度
box.height = 490;//高度
box.autoplayer = 3;//自动播放间隔时间
//box.add({"url":"图片地址","title":"悬浮标题","href":"链接地址"})
for(var i=0; i<obj.length; i++){
document.write('box.add({"url":'+'"'+obj[i].url+'"'+","+'"title":'+'"'+obj[i].title+'"'+"});");
}
box.show();
</script>我照着你的例子试着改了改,想在能正确输出我要想的格式了,但它是直接在网页上输出了数据。js不能读取,请问应该怎么写呢?
for(var i=0; i<obj.length; i++){ 'box.add({"url":'+'"'+obj[i].url+'"'+","+'"title":'+'"'+obj[i].title+'"'+"});";
}这么写,但是还还是没有效果啊!
{
box.add({"url":'"'+obj[i].url+'"',"title":'"'+obj[i].title+'"'});
}
完整代码如下
<!-- {if $recommend_product} -->
<script type="text/javascript" src="../images/pptBox.js"></script>
<script>
{literal}
var box =new PPTBox();
box.width = 223; //宽度
box.height = 123;//高度
box.autoplayer = 3;//自动播放间隔时间
{/literal}
<!-- {foreach from=$recommend_product name=recommend_product item=product} -->
{literal}
box.add({"url":"{/literal}{$product.thumb}{literal}","href":"{/literal}{$product.url}{literal}","title":"{/literal}{$product.name}{literal}"});{/literal}
<!-- {/foreach} -->
{literal}
box.show();
{/literal}
</script>
<!-- {/if} -->