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_class")->order("oid ASC")->select();
for ($i = 0;
$i < count($service);
$i++)
{
array_push($serviceProduct, array("srvName"=>$service[$i]["pc_cn"], "product"=>M("product")->where("prod_class_id=".$service[$i]["pcid"])->order("oid ASC")->select()));
}
//如果要在模板中输出变量,必须在在控制器中把变量传递给模板,系统提供了assign方法对模板变量赋
值,无论何种变量类型都统一使用assign赋值。
$this->assign("serviceProduct", $serviceProduct);
$this->display();
}else{
if ($id > 0){
$this->display("detail");
}else{
$this->assign('prod_en', $prod);
$clsList = M("question_class")->order("oid ASC")->select();
$this->assign('clsList', $clsList);
$qusList = M("question")->order("oid ASC")->select();
$this->assign('qusList', $qusList);
$this->display("list");
}
}
}
模板代码:
- {$sp.srvName}
- {$pd.prod_cn}
- |
-
当使用多重嵌套循环时,需要为每一个volist指定key值,通过
判断是否为数组中的最后一个元素。
Volist标签实现隔行变色
方法1:
style="background-color:#000;
">·{$vo.title}{$vo.edittime|date="Y年m月d日",###}{$vo.author}
volist 中的 mod 参数相当于指定一个频率,系统会将当前的实际记录对 mod 参数值求余(PHP中的%运算符)运算。而配合判断标签(如eq标签),就可以按照频率控制输出的数据或数据显示的格式。
方法2:
style="background-color:#000;
">·{$vo.title} {$vo.edittime|date="Y年m月d日",###}{$vo.author}
下面再列出一个 Volist 循环table里的tr、td的实例:
{$site.name}
【ThinkPHP学习(四)volist标签高级应用之多重嵌套循环、隔行变色】
推荐阅读
- 跌跌撞撞奔向你|跌跌撞撞奔向你 第四章(你补英语,我补物理)
- 奔向你的城市
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 四首关于旅行记忆的外文歌曲
- CET4听力微技能一
- 亲子日记第186篇,2018、7、26、星期四、晴
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案