Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Joomla中获取用户组的所有子级?_Php_Joomla_Mysqli_Joomla2.5_Usergroups - Fatal编程技术网

Php 如何在Joomla中获取用户组的所有子级?

Php 如何在Joomla中获取用户组的所有子级?,php,joomla,mysqli,joomla2.5,usergroups,Php,Joomla,Mysqli,Joomla2.5,Usergroups,我有一个用户组表 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)也有它的子id(4)。因此,创建一棵树是非常必要的

我有一个
用户组

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)也有它的子id(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>

选择组

您可以使用
optgroup
进行类似操作

<select>
  <optgroup label="Group 1">
    <option>Option 1.1</option>
  </optgroup> 
  <optgroup label="Group 2">
    <option>Option 2.1</option>
    <option>Option 2.2</option>
  </optgroup>
  <optgroup label="Group 3" disabled>
    <option>Option 3.1</option>
    <option>Option 3.2</option>
    <option>Option 3.3</option>
  </optgroup>
</select>

备选案文1.1
备选案文2.1
备选案文2.2
备选案文3.1
备选案文3.2
备选案文3.3

阅读此

很抱歉,这不是我正在寻找的解决方案。通过这样做,我们无法获取optgroup的值。我需要获取每个父数据。首先显示父下拉列表,然后根据用户选择显示子数据dropdowns@Sundar但是我想在同一个列表框中显示所有父项及其子项这样做了,但这不是最好的方法。@user2182010您可以在
jquery
for
optgroup