下拉菜单的类别/子类别循环

时间:2012-06-23 19:55:42

标签: loops drop-down-menu menu

我正在尝试使用数据库表中的类别和子类别动态填充下拉菜单。我的问题是我无法找到循环子类别的方法,因此它们显示在正确的类别下。

在我的SQL数据库中,我有一个名为'Categories'的表,其中有3列:id,category,subcategory。子类别列中的子类别由3个冒号分隔(Artists ::: Childcare ::: Classes ::: Event)。

我在html中使用无序列表来填充下拉菜单。

<ul id="menu">
<li><a href="#">button</a>
<ul>

<?php 

while($allCategories=mysql_fetch_assoc($resultre1)){ ?>

<li><a href="#"><div class="whatever"<?php print      
$relanguage_tags[$allCategories['category']];?> 
<?php if(in_array($relanguage_tags[$allCategories['category']],$reCategory)) 
print "selected='selected'"; ?> >
<?php print $relanguage_tags[$allCategories['category']]; ?></div></a> 

<?php } ?>

<ul>

<?php 
 if($ptype=="showOnMap" || $ptype=="viewFullListing" || $ptype=="home" || $ptype==""){
$reCategoryString=getCommaStringFromArray($reCategory);
$reqr2="select * from $categoryTable where id like '%' ".getRealValue($reCategoryString,"reCategory");
$resultre2=mysql_query($reqr2);
?>

<?php 

while($allSubCategories=mysql_fetch_assoc($resultre2)){ 
$subCatList=explode(":::",$allSubCategories['subcategories']);
$subCatSize=sizeof($subCatList);
for($i=0;$i<$subCatSize;$i++){

?>

<li><a href="#"><div class="whatever"<?php print $relanguage_tags[$subCatList[$i]];?>' 
<?php if(in_array($relanguage_tags[$subCatList[$i]],$reSubcategory)) print   "selected='selected'"; ?> ><?php print $relanguage_tags[$subCatList[$i]]; ?></div></a></li>
<?php }

} ?>

<?php } ?>



         </ul>
        </li> 
 </ul>
</li>


</ul>

1 个答案:

答案 0 :(得分:0)

$subCatList=explode(":::",$allSubCategories['subcategories']);
$subCatSize=count($subCatList);
for($i=0;$i<$subCatSize;$i++){
      echo "<li>".$subCatList[$i]."</li>";
?>

如果这不是答案意味着我没有理解你的问题。

修改

创建一个显示类别表中所有子类别的函数:

function subCategories($category){ 
     $subCategories="";
      while($r=mysql_fetch_assoc(mysql_query("select * from ".$category.""))){
         $subCategories.="<li>".$r['subCategory']."</li>";
      }
     return $subCategories;
}

并在每个类别标记中调用此函数,如echo subCategories("Housing");。 希望它有所帮助!