3
我有一个user_groups
表如何让Joomla中的用户组的所有孩子?
id parent_id title
1 0 Public
2 1 Registered
3 2 Author
4 3 Editor
12 2 Customer Group (Example)
你可以在这里看到寄存器(2)有2个孩子ID(3,12)和ID(3)也有它的孩子(4)。所以它创建了一棵树。现在我需要在列表框中制作这样的树。所以我尝试过这样:
<?php
$db = JFactory::getDbo();
$query = "select grp.id, grp.title from #__usergroups AS grp where parent_id=2";
$db->setQuery($query);
$groups = $db->loadObjectList();
?>
<tr>
<td>Select Group</td>
<td>
<select name="usergroup">
<option value="0"><?='Select Group';?></option>
<?
foreach($groups as $group) {
$query = "select grp.id, grp.title from #__usergroups AS grp where parent_id=".$group->id;
$db->setQuery($query);
$groups2 = $db->loadObjectList();
?>
<option value="<?=$group->id?>"><?=$group->title?></option>
<? if($groups2!=''){
foreach($groups2 as $group2){
$query = "select grp.id, grp.title from #__usergroups AS grp where parent_id=".$group2->id;
$db->setQuery($query);
$groups3 = $db->loadObjectList();
?>
<option value="<?=$group2->id?>">--<?=$group2->title?></option>
<?
if($groups3!=''){
foreach($groups3 as $group3){
$query = "select grp.id, grp.title from #__usergroups AS grp where parent_id=".$group3->id;
$db->setQuery($query);
$groups4 = $db->loadObjectList();
?>
<option value="<?=$group3->id?>">----<?=$group3->title?></option>
<?
if($groups4!=''){
foreach($groups4 as $group4){
?>
<option value="<?=$group4->id?>">--------<?=$group4->title?></option>
<?
}
}
}
}
}
}
}?>
</select>
</td>
</tr>
但是这不是最好的方法。如果我添加更多的子项目,那么这将无法使用,直到我再次进入。所以我需要有效的方法来做到这一点,所以我不需要在未来增加水平。请帮忙!
抱歉,这并不是我所期待for.By这样做,我们不能得到optgroup.I价值的解决方案需要获取每个父数据。 – user2182010
首先显示父级下拉菜单并根据用户选择显示子级下拉菜单 – Sundar
@Sundar但是我想显示所有父级项目,并且它在同一个列表框中显示为子级别。您可以看到我已经完成了该操作,但这不是最佳方式去做吧。 – user2182010