thinkPHP <volist>标签 循环输出表格 怎么动态设定循环次数呢?

 我来答
du瓶邪
2015-06-26 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2739万
展开全部

在使用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");
}
}

模板代码:

<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>&nbsp;</dd>
</if>
</dl>
</volist>

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

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

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

MarkGo
2013-05-28 · 测试API接口使用的啊1
MarkGo
采纳数:257 获赞数:427

向TA提问 私信TA
展开全部
循环数量主要看二维数组里的数量
追问
空数组,我想让它动态循环输出表格,比如想输出3行 就出来三行
追答
那就直接创建二维数组裏3个空的
$arr['id'][0]="";
$arr['id'][1]="";
$arr['id'][2]="";
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luocongjay
2013-05-31 · TA获得超过949个赞
知道小有建树答主
回答量:1382
采纳率:33%
帮助的人:427万
展开全部
你想设置几个,然后定义该数组可以count有几个. 再volist不就OK么。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式