后台输出数据完整,但是页面展示不全:
理想结果:
代码如下:
<foreach name="cat_infoA" item="v">
<div class="cat item1">
<h3><a href="">{$v.cat_name}</a> <b></b></h3>
<foreach name="cat_infoB" item="vv">
<if condition="$vv['cat_pid'] eq $v['cat_id']">
<div class="cat_detail">
<dl class="dl_1st">
<dt><a href="">{$vv.cat_name}</a></dt>
<dd>
<foreach name="cat_infoC" item="vvv">
<equal name="vvv['cat_pid']" value="$vv['cat_id']">
<a href="">{$vvv.cat_name}</a>
</equal>
</foreach>
</dd>
</dl>
</div>
</if>
</foreach>
</div>
</foreach>
实际结果展示不完全,调试发现,遍历范围过大,多遍历输出了<div>标签,导致数据展示bug。应把foreach遍历放在div内部,尽可能缩小范围,正确代码:
<foreach name="cat_infoA" item="v">
<div class="cat item1">
<h3><a href="">{$v.cat_name}</a> <b></b></h3>
<div class="cat_detail">
<foreach name="cat_infoB" item="vv">
<if condition="$vv['cat_pid'] eq $v['cat_id']">
<dl class="dl_1st">
<dt><a href="">{$vv.cat_name}</a></dt>
<dd>
<foreach name="cat_infoC" item="vvv">
<equal name="vvv['cat_pid']" value="$vv['cat_id']">
<a href="">{$vvv.cat_name}</a>
</equal>
</foreach>
</dd>
</dl>
</if>
</foreach>
</div>
</div>
</foreach>