在php程序中,应用了
       $smarty -> assign('area',$arealist);
$arealist是一个数组,
我在smarty中循环输出area的值,
{foreach from=$area item=area}
    <a href="{$area.url}">{$area.areaname}</a>
{/foreach}
可以正常显示,由于下面还要在循环输出一次
{foreach from=$area item=area1}
    <a href="{$area1.url}">{$area1.areaname}</a>
{/foreach}
这样为什么就显示不出来了呢?
问题出在哪里,怎么解决,急用

解决方案 »

  1.   

    你把两段代码换一下位置。看是不是第二次不显示。
    要是的话,是smarty的问题
    要不是的话,就是你代码的问题了。我没用过smarty,不敢妄下结论。不过感觉是你的问题,area1与area的原因。
      

  2.   

    {foreach from=$area item=area} X你item取了一个与from一样的名称啊!不是自找麻烦吗!
      

  3.   

    to 2#
    两个都写成一样也不可以to 3#
    item与from一样也没关系,第一个循环可以读出我又试了一下,如果在php程序中,把$arealist赋给两个变量就可以了
     $smarty -> assign('area',$arealist); 
     $smarty -> assign('area1',$arealist); 
    在模板中第一个循环不变
    第二个写成这样:
    {foreach from=$area1 item=area1} 
        <a href="{$area1.url}">{$area1.areaname} </a> 
    {/foreach}
    这样就正常显示了,貌似模板中用几次,就得赋几次值
      

  4.   

    楼主还是没明白我说的意思,说你自找麻烦是因为“你item取了一个与from一样的名称”后,你的数组变量的值已经被它的最后一个值给替代了,你下次再去使用的时候就不再是数组了!$q = array(123,456);
    var_dump($q);//整个数组
    foreach ($q as $q) {}
    var_dump($q);//数组最后一个值
      

  5.   

    要养成良好的编程习惯,数组循环的时候最好不要把key和item设成数组本身名字,你顶楼的两个foreach对换一下是可以的。