ThinkPHP学习 volist标签高级应用之多重嵌套循环、隔行变色(转)

Action代码:

[php]

  1. public function index(){
  2. $prod = I("get.prod_en");
  3. $id = I("get.id", 0, "int");
  4. if ($prod == ""){
  5. $serviceProduct = array();//多重循环遍历的数组

[php]

  1. //数据保存在两张表中,这里通过循环初始化$serviceProduct数组
  2. $service = M("product_class")->order("oid ASC")->select();
  3. for ($i = 0; $i < count($service); $i++)
  4. {
  5. array_push($serviceProduct, array("srvName"=>$service[$i]["pc_cn"], "product"=>M("product")->where("prod_class_id=".$service[$i]["pcid"])->order("oid ASC")->select()));
  6. }

[php]

  1. //如果要在模板中输出变量,必须在在控制器中把变量传递给模板,系统提供了assign方法对模板变量赋
  2. 值,无论何种变量类型都统一使用assign赋值。
  3. $this->assign("serviceProduct", $serviceProduct);
  4. $this->display();
  5. }else{
  6. if ($id > 0){
  7. $this->display("detail");
  8. }else{
  9. $this->assign(‘prod_en‘, $prod);
  10. $clsList = M("question_class")->order("oid ASC")->select();
  11. $this->assign(‘clsList‘, $clsList);
  12. $qusList = M("question")->order("oid ASC")->select();
  13. $this->assign(‘qusList‘, $qusList);
  14. $this->display("list");
  15. }
  16. }
  17. }

模板代码:

[html]

  1. <volist name="serviceProduct" id="sp" key="i">
  2. <dl class="dlist odd">
  3. <dt>{$sp.srvName}</dt>
  4. <volist name="sp.product" id="pd" key="j">
  5. <dd><a href="/index.php/question?prod_en={$pd.prod_en}">{$pd.prod_cn}</a></dd>
  6. <if condition="$j lt count($sp[‘product‘])">
  7. <dd>|</dd>
  8. </if>
  9. </volist>
  10. <if condition="count($sp[‘product‘]) EQ 0">
  11. <dd> </dd>
  12. </if>
  13. </dl>
  14. </volist>

当使用多重嵌套循环时,需要为每一个volist指定key值,通过

[html]

  1. <if condition="$j lt count($sp[‘product‘])">

判断是否为数组中的最后一个元素。

Volist标签实现隔行变色

方法1:

[html]

  1. <volist name="newslist" id="vo" mod="2">
  2. <li <eq name="mod" value="0"> style="background-color:#000;"</eq>><span>·<a href="{$vo.url}">{$vo.title}</a></span><span>{$vo.edittime|date="Y年m月d日",###}</span><span>{$vo.author}</span></li>
  3. </volist>

volist 中的 mod 参数相当于指定一个频率,系统会将当前的实际记录对 mod 参数值求余(PHP中的%运算符)运算。而配合判断标签(如eq标签),就可以按照频率控制输出的数据或数据显示的格式。

方法2:

[html]

  1. <volist name="newslist" id="vo" key="k">
  2. <li <if condition="$k%2== ‘0‘"> style="background-color:#000;"</if >><span>·<a href="{$vo.url}">{$vo.title}</a></span><span> {$vo.edittime|date="Y年m月d日",###}</span><span>{$vo.author}</span></li>
  3. </volist>

下面再列出一个 Volist 循环table里的tr、td的实例:

[html]

    1. <tr bgcolor="#FBFCF1">
    2. <volist name="siteurl" id="site" mod="4">
    3. <eq name="mod" value="0"></tr><tr bgcolor="#FBFCF1"></eq>
    4. <td width="25%"><a href="{$site.url}" target="_blank">{$site.name}</a></td>
    5. </volist>
    6. </tr>
时间: 2024-11-05 12:27:04

ThinkPHP学习 volist标签高级应用之多重嵌套循环、隔行变色(转)的相关文章

ThinkPHP学习(四)volist标签高级应用之多重嵌套循环

Action代码: public function index(){ $prod = I("get.prod_en"); $id = I("get.id", 0, "int"); if ($prod == ""){ $serviceProduct = array();//多重循环遍历的数组 //数据保存在两张表中,这里通过循环初始化$serviceProduct数组 $service = M("product_cla

ThinkPHP中volist标签的使用

Volist标签主要用于在模板中循环输出数据集或者多维数组. web页面代码 <!DOCTYPE html> <html> <head> <title></title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <

ThinkPHP 模板 Volist 标签嵌套循环输出多维数组

ThinkPHP 中对 volist 标签嵌套使用可实现多维数组的输出. volist 嵌套使用 一般的二维数组,可以用 volist 标签直接循环输出.对于多维数组,则需要对其中的数组成员再次使用 volist 标签嵌套循环输出. 构建一个多维数组: $food = array(); $food[0]['fruits'][0]['fruits1'] = '苹果1'; $food[0]['fruits'][0]['fruits2'] = '桔子1'; $food[0]['fruits'][0][

ThinkPHP Volist标签

Volist标签主要用于在模板中循环输出数据集或者多维数组. volist标签(循环输出数据) 闭合 非闭合标签 属性 name(必须):要输出的数据模板变量 id(必须):循环变量 offset(可选):要输出数据的offset length(可选):输出数据的长度 key(可选):循环的key变量,默认值为i mod(可选):对key值取模,默认为2 empty(可选):如果数据为空显示的字符串 通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出.在Ac

thinkphp &lt;volist&gt;标签中 &lt;if&gt; 判断的写法

thinkphp <volist>标签中 <if> 判断的写法 1 <volist name="data" id="vo"> 2 3 <if condition="$vo['devstatus'] eq 1">在线<else /> 离线</if> 4 5 </volist> IF标签用法 1 <if condition="($name eq 1)

Thinkphp中的volist标签(查询数据集(select方法)的结果输出)用法简介

参考网址:http://camnpr.com/archives/1515.html 通常volist标签多用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,对此可以直接使用volist标签进行输出. 在控制器中首先对模版赋值,如下例所示: view sourceprint?1 $User = M('User'); 2 $list = $User->limit(10)->select(); 3 $this->assign('list',$li

ThinkPHP中处理模板引擎的volist标签

Volist标签主要用于在模板中循环输出数据集或者多维数组 必须得属性有:name属性,要输出的数据模板变量,id是循环变量. 其他属性参见开发手册. 通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签输出. 首先在对应得控制器中对其进行赋值 $Student=M('Student'); $list= $Student->select(); $this->$assgn('list',$list); 在模板中定义循环输出编号和姓名 <volist name=&

Thinkphp学习04

原文:Thinkphp学习04 一.ThinkPHP 3 的输出      (重点) a.通过 echo 等PHP原生的输出方式在页面中输出 b.通过display方法输出   想分配变量可以使用assign方法 c.修改左右定界符   休要修改配置文件中的配置项   'TMPL_L_DELIM'=>'<{', //修改左定界符   'TMPL_R_DELIM'=>'}>', //修改右定界符 二.ThinkPHP 3 的模型使用  (重点)  需要在方法中通过new Model(

ThinkPhp学习06

原文:ThinkPhp学习06 一.简单学习修改用户信息模块 1.编写UserAction.class.php 1 <?php 2 3 class UserAction extends Action{ 4 public function index(){ 5 $m=M('User'); 6 $arr=$m->select(); 7 $this->assign('data',$arr); 8 $this->display(); 9 } 10 public function del()