在smarty中,怎样实现类似while或for的功能? foreach 或者 section 是针对数组的啊。我现在不是对数组进行循环。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 具体情况说出来。section应该能够实现。 php里:$your_array = array();$your_array[] = array("id" =>1 ,"name" =>"hei");$your_array[] = array("id" =>2 ,"name" =>"guy");$smart_obj->assign('your_array',$your_array);在tpl文件里<table><!-- BEGIN your_array --> <tr bgcolor='#FFFFFF'> <td align='center'>{id}</td> <td align='center'><b><font color='#6600FF' size='4'>{name}</font></b></td> </tr><!-- END your_array --></table> http://smarty.php.net/manual/en/language.function.foreach.phpExample 7-5. The item attribute 具体情况:我有3个人,每个人有不同数目的苹果。我在php建了一个数组保存它。如: var p=array( array( "name" => "小陈", "num" => 3 //表示有3个苹果 ), array( "name" => "小红", "num" => 5 ), array( "name" => "小梅", "num" => 2 ) );然后在smarty的模板中,我希望通过每个人的苹果个数输出相应数目的苹果图片(html:<img src="苹果.jpg">)。更具体一点,我希望生成的html是下面这样:<table> <tr> <td>小陈</td> <td><img src="苹果.jpg"><img src="苹果.jpg"><img src="苹果.jpg"></td> </tr> <tr> <td>小红</td> <td><img src="苹果.jpg"><img src="苹果.jpg"><img src="苹果.jpg"><img src="苹果.jpg"><img src="苹果.jpg"></td> </tr> <tr> <td>小梅</td> <td><img src="苹果.jpg"><img src="苹果.jpg"></td> </tr></table> 我想到的方法是,直接在php的页面中,把<img src="苹果.jpg" >先保存在数组中,即: var p=array( array( "name" => "小陈", "num" => 3, //表示有3个苹果 "html" =>"<img src=\"苹果.jpg\" > <img src=\"苹果.jpg\" > <img src=\"苹果.jpg\" >" ), ...... );但我不想把这些html的代码放到php中去。而是直接在smarty模板中用smarty来实现这种功能. 好像不行吧,除非放到数组里,smarty好像不能根据某个数值进行循环吧,初学~~~等高人~~~ 或者直接在smarty模板中使用php代码也是可行的呀 咳,用str_repeat作modifier就行了 to 11楼的 netstu把你的数据形式举个例子呀===================================================我在七、八楼,举了例. 做东西不能局限于一样技术的,smarty是很好,但是不能什么地方,什么场合都非得要用像你说的问题,如果为了你可以用<section>把要输出的东西放在数组里就够了,要不就在页面上用个PHP的while或for 总之,如果你要非要着重去用smarty来实现while的功能其实不是不可能,用一个foreach和一个section嵌套就可以达到你所想要的,但是写起来会比较麻烦,程序应该是在保证可读性运行速度的前提下,代码越简练越好你在PHP中处理苹果的果数的HTML实际上是个很简单的事情,这样你只需要一个二维数组就可以将全部的变量包括进去了,模版上用一个foreach就可以输出,看起来也条理也比较清楚在模版中又可以少了一次循环,在模版中循环的速度远是比不上在PHP程序中的所以你完全没有必要执意的用smarty去实现类似的while功能如果你非要这样做,我可以给你一个思路其实用section就可以了,你在PHP中设置一个数组,这个数组的长度就是苹果的果数,再用一个section输出苹果果数就可以了,不过这个数据的下标记得要用默认的数字索引,数据随便写反正也没有用$array_index=array();for($i=0;$i<$count;$i++)$array_index[$i]=$i;--------------------------------------------------<[section name=name1 loop=$array_index]><img src="苹果.jpg"><[/section]>这样你只要在PHP控制$array_index的长度就可以实现循环 谢谢15楼的gs6fox , 那么有耐心打了那么多字。 也谢谢回答我问题的众多朋友。我会把那可怜的20分 分给你们的。其实我也觉得,有些事是smarty该做的,有些事是smarty不该做的. p3p cookie 跨域问题 TEXTAREA 获取 广州工资问题 小妹请教JQuery ajaxfileupload文件上传的问题! Mysql 中 超大数据表 如何添加一个字段? jpgraph X是每天,1-31,Y是体温,怎么做? mysql_query()中的sql语句好像不能带括号。 php 错误问题 本人菜鸟 请教大家 十万火急 一个数据库导入的问题 请指点谢谢 php 的二维数组 超级郁闷的问题,smarty的date_format函数 php
section应该能够实现。
$your_array = array();
$your_array[] = array("id" =>1
,"name" =>"hei");
$your_array[] = array("id" =>2
,"name" =>"guy");$smart_obj->assign('your_array',$your_array);
在tpl文件里
<table>
<!-- BEGIN your_array -->
<tr bgcolor='#FFFFFF'>
<td align='center'>{id}</td>
<td align='center'><b><font color='#6600FF' size='4'>{name}</font></b></td>
</tr>
<!-- END your_array -->
</table>
我有3个人,每个人有不同数目的苹果。我在php建了一个数组保存它。
如:
var p=array(
array(
"name" => "小陈",
"num" => 3 //表示有3个苹果
),
array(
"name" => "小红",
"num" => 5
),
array(
"name" => "小梅",
"num" => 2
)
);然后在smarty的模板中,我希望通过每个人的苹果个数输出相应数目的苹果图片(html:<img src="苹果.jpg">)。
更具体一点,我希望生成的html是下面这样:
<table>
<tr>
<td>小陈</td>
<td><img src="苹果.jpg"><img src="苹果.jpg"><img src="苹果.jpg"></td>
</tr>
<tr>
<td>小红</td>
<td><img src="苹果.jpg"><img src="苹果.jpg"><img src="苹果.jpg"><img src="苹果.jpg"><img src="苹果.jpg"></td>
</tr>
<tr>
<td>小梅</td>
<td><img src="苹果.jpg"><img src="苹果.jpg"></td>
</tr>
</table>
即:
var p=array(
array(
"name" => "小陈",
"num" => 3, //表示有3个苹果
"html" =>"<img src=\"苹果.jpg\" > <img src=\"苹果.jpg\" > <img src=\"苹果.jpg\" >"
),
......
);但我不想把这些html的代码放到php中去。而是直接在smarty模板中用smarty来实现这种功能.
用str_repeat作modifier就行了
把你的数据形式举个例子呀
===================================================我在七、八楼,举了例.
像你说的问题,如果为了你可以用<section>把要输出的东西放在数组里就够了,要不就在
页面上用个PHP的while或for 总之,如果你要非要着重去用smarty来实现while的功能
其实不是不可能,用一个foreach和一个section嵌套就可以达到你所想要的,但是写起来
会比较麻烦,程序应该是在保证可读性运行速度的前提下,代码越简练越好你在PHP中处理苹果的果数的HTML实际上是个很简单的事情,这样你只需要一个二维数组就
可以将全部的变量包括进去了,模版上用一个foreach就可以输出,看起来也条理也比较清楚
在模版中又可以少了一次循环,在模版中循环的速度远是比不上在PHP程序中的所以你完全没有必要执意的用smarty去实现类似的while功能
如果你非要这样做,我可以给你一个思路
其实用section就可以了,你在PHP中设置一个数组,这个数组的长度就是苹果的果数,再用一个
section输出苹果果数就可以了,不过这个数据的下标记得要用默认的数字索引,数据随便写反正
也没有用$array_index=array();
for($i=0;$i<$count;$i++)$array_index[$i]=$i;--------------------------------------------------<[section name=name1 loop=$array_index]>
<img src="苹果.jpg">
<[/section]>这样你只要在PHP控制$array_index的长度就可以实现循环
分给你们的。
其实我也觉得,有些事是smarty该做的,有些事是smarty不该做的.