<?php
if($downhits==2)
{
echo '<div class="downfile" style=" display:none;">
  
        {loop $downfile $r}
            <li><h3 class="button white">{$r}</h3></li>
        {/loop}
        {loop $downfiles $r}
            <li><h3 class="button white">{$r}</h3></li>
        {/loop}
  </div>';
}
else
{
echo '<div class="downfile" >
  
{loop $downfile $r}
            <li><h3 class="button white">{$r}</h3></li>
        {/loop}
        {loop $downfiles $r}
            <li><h3 class="button white">{$r}</h3></li>
        {/loop}
  </div>';}
?>以上代码我在echo中输出   可是 这个$r和$downfiles 这个 貌似都没有反应 所以想问下在echo中怎么输出$r和$downfiles  也就在怎么调用或者说是语法吧

解决方案 »

  1.   

    首先   PHP中单引号内的变量无法被解析为变量值所以你把你echo 'xxxxxxxxxxxx'换成 echo "xxxxxxxxxxx"即可(同时把内部的双引号换成单引号)其次... 不理解你这样的语句是在什么环境下使用能否正常循环... 上面的办法只针对你问的两个变量无法解析的问题.
      

  2.   

    我不懂php,但我知道变量在单引号中不会取值,只把变量名作为字符串
      

  3.   

    loop循环标签是PHPcms自定义的模板循环标签吧,这里的echo是将字符串输出到模板,和模板对应的控制器文件会分配$downfiles 这个变量,loop循环再将这个变量循环输出,$downfiles 是数组$r是里面的值。
      

  4.   

    <?php
    if($downhits==2)
    {
    echo '<div class="downfile" style=" display:none;">';
      
            {loop $downfile $r}
                <li><h3 class="button white">{$r}</h3></li>
            {/loop}
            {loop $downfiles $r}
                <li><h3 class="button white">{$r}</h3></li>
            {/loop}
      echo '</div>';
    }
    else
    {
    echo '<div class="downfile" >';
      
    {loop $downfile $r}
                <li><h3 class="button white">{$r}</h3></li>
            {/loop}
            {loop $downfiles $r}
                <li><h3 class="button white">{$r}</h3></li>
            {/loop}
      echo '</div>';}
    ?>
      

  5.   

    你这段是写在什么位置的。是写在action里还是写在模板里的。
      

  6.   

    楼主是不是没闹明白程序和模板是要分开来搞的呀?你在程序里写html模板,然后把模板的参数带进去。这下倒好,你的html是显示了,但是,显示完是你的原始模板,都已经发送到客户端了,难不成你还想让客户段来解释你的{loop}{/loop}这样的代码?你又不是在写js.模板是有特定的模板函数来处理他的,最终他会在服务器端会被解释成php代码来执行。所以,你不要在程序里写模板代码。建议你这样。你把$downhits这个值传给模板。
    然后在模板中写:{if $downhits==2}
    <div class="downfile" style=" display:none;">
    {loop $downfile $r}
        <li><h3 class="button white">{$r}</h3></li>
    {/loop}
    {loop $downfiles $r}
        <li><h3 class="button white">{$r}</h3></li>
    {/loop}
      </div>
    {else}
    <div class="downfile" >
    {loop $downfile $r}
                <li><h3 class="button white">{$r}</h3></li>
            {/loop}
            {loop $downfiles $r}
                <li><h3 class="button white">{$r}</h3></li>
            {/loop}
      </div>
    {/if}
    或者是你直接在php程序里这样写:if($downhits==2){
    $html='<div class="downfile" style=" display:none;">';
    foreach($downfile as $r){
    $html.='<li><h3 class="button white">'.$r.'</h3></li>';
    }
    foreach($downfiles as $r){
    $html.='<li><h3 class="button white">'.$r.'</h3></li>';
    }
    $html.='</div>';
    }else{
    $html='<div class="downfile">';
    foreach($downfile as $r){
    $html.='<li><h3 class="button white">'.$r.'</h3></li>';
    }
    foreach($downfiles as $r){
    $html.='<li><h3 class="button white">'.$r.'</h3></li>';
    }
    $html.='</div>';
    }
      

  7.   

    另外,div标签下面直接包含li标签,好像不合符html的写法吧