我现在要做一个部门权限控制的页面。首先我在php文件中写好了几个数组,有一级部门,二级部门,三级部门。这三个部门是从属关系。比如一级部门是一维数组,二级部门是二维数组,三级部门是三维数组。在htm文件中我想到用loop循环显示。在第三级部门上每个加checkbox,选中提交之后再php文件中处理。现在的问题是,不清楚loop循环怎么写。我找到一个如下的写法:
<td><!--{loop $regularlist $regular}--> <span id="tr{$regular[id]}" class="grouplist" name="group{$regular[regulargroupid]}"> <label><input type="checkbox" name="regular[]" id="regular{$regular[id]}" onclick="Regular.click(this)" <!--{if $regular[checked]}--> checked="true" <!--{/if}--> > $regular[name]</label> </span> <!--{/loop}--></td>
我只需要那个$regular【name】,改为我自己的名字。那部门数组我应该怎么写?还有loop循环是htm语言里边的吗?还是其他语言嵌入的?
在此方面,我应该看哪方面的内容?
在你的代码中,看起来你使用的是一种模板语言,这种模板语言可能是 Smarty,也可能是另一种模板引擎。
你可以在你的 PHP 代码中设置一个变量,该变量包含你的部门数组,然后在你的模板文件中使用循环来遍历该数组。举个例子,假设你的部门数组是这样的:
$departments = array(
array(
'name' => 'Department 1',
'subdepartments' => array(
array(
'name' => 'Subdepartment 1',
'subdepartments' => array(
array(
'name' => 'Sub-subdepartment 1'
),
array(
'name' => 'Sub-subdepartment 2'
)
)
),
array(
'name' => 'Subdepartment 2',
'subdepartments' => array(
array(
'name' => 'Sub-subdepartment 3'
),
array(
'name' => 'Sub-subdepartment 4'
)
)
)
)
),
array(
'name' => 'Department 2',
'subdepartments' => array(
array(
'name' => 'Subdepartment 3',
'subdepartments' => array(
array(
'name' => 'Sub-subdepartment 5'
),
array(
'name' => 'Sub-subdepartment 6'
)
)
),
array(
'name' => 'Subdepartment 4',
'subdepartments' => array(
array(
'name' => 'Sub-subdepartment 7'
),
array(
'name' => 'Sub-subdepartment 8'
)
)
)
)
)
);
然后你可以在模板文件中使用如下的代码来遍历这个数组:
<!--{loop $departments}-->
<b>{$department.name}</b>
<!--{loop $department.subdepartments}-->
<b>{$subdepartment.name}</b>
<!--{loop $subdepartment.subdepartments}-->
<label>
<input type="checkbox" name="subdepartment[]" value="{$subsubdepartment.name}"> {$subsubdepartment.name}
</label>
<!--{/loop}-->
<!--{/loop}-->
<!--{/loop}-->