3
나는 당신이 (2) 두 아이의 아이디 (3,12)와 ID를 가지고 여기에 (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)
있다 (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
을 사용할 수 있습니다
죄송이 아니다 나는 for.By 우리가 optgroup.I의 값을 얻을 수없는이 일을 무엇을 찾고 해결책 각 상위 데이터를 가져와야합니다. – user2182010
먼저 부모 드롭 다운을 표시하고 사용자 선택에 따라 하위 드롭 다운을 표시합니다 – Sundar
@Sundar하지만 모든 부모 항목을 표시하고 동일한 목록 상자에 자식입니다. 알 수 있듯이 이미 완료했지만 가장 좋은 방법은 아닙니다. 그것을하기 위해. – user2182010