foreach双重循环怎么在ThinkPHP模板中输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了foreach双重循环怎么在ThinkPHP模板中输出相关的知识,希望对你有一定的参考价值。

foreach ($jgbh as $key => $value)
echo '<table align="center" width="500" border="1">';
echo '<caption><h1>'.$jgbh[$key]['jgbh'].'</h1></caption>';
$list=$mode->where ("jgbh = '".$jgbh[$key]['jgbh']."'")->order('jgbh')->select();
echo '<tr>';
foreach ($list as $jiguilist)
if ($jiguilist['IP']=="")
$jiguilist['IP']="无IP";

echo '<td>'.$jiguilist['khname'].'</td>'.'<td>'.$jiguilist['IP'].'</td>'.'</tr>';

echo '</tr>';

echo '</table>';
怎么输出到Thinkphp的模板中才能实现上面的功能?

<foreach name="list" item="v">
.....................
  <foreach name="v.children" item="vv">
  ............  
</foreach>
</foreach>

类似这种结构就行了。

不建议楼主那样在模块中进行查询,最后在模型或者控制器中把需要的数据获取到,模块中只负责输出。不然MVC的意义就不大了。

参考技术A tp中有<foreach> 和<volist>标签,看一下文档嵌套就好了 参考技术B 把这些输出放到模板文件中用foreach输出··追问

能给个例子吗?

追答


$vo.id

$val.xx

追问


$data.jgbh

$ldata.IP

那跟这个差不多,那我现在要判断$ldata.IP这个值为空的话就输出“无IP”要怎么判断,在模板中直接用这个表情会出错。

追答<volist name="list" id="data">
    <p>$data.jgbh</p>
    <volist name="data['list']" id="ldata">
        <if condition="!empty($ldata.IP)">
            <p>$ldata.IP</p>
        <else>
            无ip
        </if>
    </volist>
</volist>

参考技术C ThinkPHP模板用法:
<foreach name="list" item="vo">
$vo.id
$vo.name
</foreach>
在php页面得到这个变量后$jgbh,$this->display('index');这是页面的输出,
html页面里写代码就行。
<foreach name="jgbh" item="vo">
$vo.ip
$vo.khname
</foreach>
ThinkPHP是一个开源的框架,你可以先在官网上下载个使用手册,看看里面的例子,才能更好的学习它和熟悉它的用法。
希望能帮助到你追问

这是普通循环

追答

恩,普通循环啥意思,foreach循环就这样。

追问

我要的是嵌套循环。我要的是这样的。

$data.jgbh

$ldata.IP

追答

volist 主要用于在模板中循环输出数据集或者多维数组。
这样的嵌套循环可以的

以上是关于foreach双重循环怎么在ThinkPHP模板中输出的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP3.2.3公共模板中循环数组变量问题

ThinkPHP中foreach和volist的区别

thinkphp使用foreach遍历的方法

thinkphp怎么输出数组

thinkphp模板页面循环输出次数问题

thinkphp 如何想模板的JS代码中传递数组?