foreach 或者 section 是针对数组的啊。我现在不是对数组进行循环。

解决方案 »

  1.   

    具体情况说出来。
    section应该能够实现。
      

  2.   

    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>
      

  3.   

    http://smarty.php.net/manual/en/language.function.foreach.phpExample 7-5. The item attribute
      

  4.   

    具体情况:
    我有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>
      

  5.   

    我想到的方法是,直接在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来实现这种功能.
      

  6.   

    好像不行吧,除非放到数组里,smarty好像不能根据某个数值进行循环吧,初学~~~等高人~~~
      

  7.   

    或者直接在smarty模板中使用php代码也是可行的呀
      

  8.   

    咳,
    用str_repeat作modifier就行了
      

  9.   

    to  11楼的 netstu
    把你的数据形式举个例子呀
    ===================================================我在七、八楼,举了例.
      

  10.   

    做东西不能局限于一样技术的,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的长度就可以实现循环
      

  11.   

    谢谢15楼的gs6fox , 那么有耐心打了那么多字。 也谢谢回答我问题的众多朋友。我会把那可怜的20分 
    分给你们的。
    其实我也觉得,有些事是smarty该做的,有些事是smarty不该做的.