thinkphp volist 怎么实现的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp volist 怎么实现的相关的知识,希望对你有一定的参考价值。
参考技术A volist 是模板内置标签:用来遍历二维数组以上的数组<volist name="$数组名" id="vo(随便起)" >
$vo['a'];
</volist>
thinkPHP <volist>标签 循环输出表格 怎么动态设定循环次数呢?
在使用ThinkPHP的volist标签时,单重循环是比较常用的,但有时候需要用到多重嵌套循环。
方法步骤:
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");
模板代码:
<volist name="serviceProduct" id="sp" key="i"><dl class="dlist odd">
<dt>$sp.srvName</dt>
<volist name="sp.product" id="pd" key="j">
<dd><a href="/index.php/question?prod_en=$pd.prod_en">$pd.prod_cn</a></dd>
<if condition="$j lt count($sp['product'])">
<dd>|</dd>
</if>
</volist>
<if condition="count($sp['product']) EQ 0">
<dd> </dd>
</if>
</dl>
</volist>
当使用多重嵌套循环时,需要为每一个volist指定key值,通过
<if condition="$j lt count($sp['product'])">
判断是否为数组中的最后一个元素。
参考技术A 循环数量主要看二维数组里的数量追问空数组,我想让它动态循环输出表格,比如想输出3行 就出来三行
追答那就直接创建二维数组裏3个空的
$arr['id'][0]="";
$arr['id'][1]="";
$arr['id'][2]="";
以上是关于thinkphp volist 怎么实现的的主要内容,如果未能解决你的问题,请参考以下文章
thinkPHP <volist>标签 循环输出表格 怎么动态设定循环次数呢?
thinkphp的volist标签,怎么设置自增序号呢?希望页面可以这么展示,单1,2,3不是数据库取出来的