http://www.thinkphp.cn/document/313.html

--------------------------------------------------------------------------
需要实现需求的模板代码:
界面类似:

<foreach name='nodelist' item='app'>
<div class="app">
<p>
<div>
<input type="checkbox" name="access[]" value="<{$app.id}>_1" level="1" />
</div>
</p>
<foreach name="app.child" item="action">
<dl>
<dt>
<div>
<input type="checkbox" name="access[]" value="<{$action.id}>_2" level="2"/>
</div>
</dt>
<foreach name="action.child" item="method">
<dd>
<div>
<input type="checkbox" name="access[]" value="<{$method.id}>_3" level="3"/>
</div>
</dd>
</foreach>
</dl>
</foreach>
</div>
</foreach>------------------------------------------------------------------------------要实现的需求:
1、level=1被选中,其下所有level=2、level=3子节点改变为选中状态;(按黄永成老师方法,已实现)
2、level=2被选中,其level=1级父节点必须设为选中状态、同级节点level=2保持状态不变。
3、同理,level=3被选中,同级节点level=3保持状态不变、其level=2级父节点必须设为选中状态(非父级level=2节点保持状态不变)、其level=1级父节点必须设为选中状态。
------------------------------------------------------------------------------
容易理解的要求表述就是:
1、应用被选中(或不选中),其下所有控制器和方法同时更新选中或不选中状态。
2、某控制器被选中,其下所有方法应被选中,同时,其所属应用必须被选中,其他保持原有状态。
3、某方法被选中,其所属控制器及应用必须被选中,其他保持原有状态。
-------------------------------------------------------------------------------
水平有限,我在进行试验的时候似乎进入了死循环。也就是实现了1,不能实现2、3,实现了2、3,不能实现1
最佳答案