首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php & mysql中的combobox treeview

问php & mysql中的combobox treeview
EN

Stack Overflow用户
提问于 2010-06-26 15:46:45
回答 2查看 1.9K关注 0票数 0

谁知道如何在组合框中显示MySQL db分层数据(嵌套集合模型(http://www.phpro.org/tutorials/Managing-Hierarchical-Data-with-PHP-and-MySQL.html)),如此处的“类别:”组合框字段:http://dir.globetourism.biz/submit.php下所示

谢谢

EN

回答 2

Stack Overflow用户

发布于 2010-06-26 16:22:47

当您打印组合框的<option>标记时,您必须检查每个元素的depth (如何获取深度在问题中链接的文章中),并打印许多"|“字符串和另外两个下划线(__),以使其看起来像树一样漂亮。

票数 0
EN

Stack Overflow用户

发布于 2010-06-26 16:29:40

代码语言:javascript
复制
<?PHP
function GetCats($id='0',$sublev='0',$vname='C_Parent')
{
 $DQ = new MySQLTable;
 $DQ -> TblName = 'cat_categories';
 $WHERE[$vname]['=']=$id;
 $res = $DQ -> Select('C_ID,C_Name',$WHERE,'C_ID');
 if (mysql_num_rows($res)>0)
 {
  while($row = mysql_fetch_assoc($res))
  {
    $ss='';
   if($sublev!=='0')
   {
    for($i=0;$i<=$sublev*10;$i++)
    {
     $ss.='&nbsp;';
    }
    $ss.='|';
    for($i=0;$i<=$sublev;$i++)
    {
     $ss.='-';
    }
     $ss.='&gt;&gt;';
   }
   $sel_s = '';
   if(IsSet($_POST['C_Parent']))
   {
    if($row['C_ID']==$_POST['C_Parent'])
    {
     $sel_s = ' selected';
    }
   } elseif (IsSet($_POST['I_Parent'])) {
    if($row['C_ID']==$_POST['I_Parent'])
    {
     $sel_s = ' selected';
    }
   } else {
    $sel_s = '';
   }
   Echo "<option value=\"".$row['C_ID']."\" ".$sel_s.">".$ss.$row['C_Name']."</option>\r\n";
   GetCats($row['C_ID'],$sublev+1);
  }
 }
}


     Echo "<select name=\"C_Parent\">\r\n";
     Echo "<option value=\"0\">...</option>\r\n";
     GetCats();
     Echo "</select>";
     ?>

就像这样。

但这是我自己的MySQL类。查询是: php where $id -php变量(当前父猫)。

如果选择了错误提交到存储,则会有$_POST变量。

这不是解决问题的最有效的方法,因为有很多查询。更有效的方法是将所有数据放到数组中进行处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3123120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档