Php 如何使用codeigniter中数据库返回的数据显示类别和子类别菜单样式列表
我试图显示一个垂直菜单(导航菜单),它有一组类别和子类别 我能够从数据库中获取数据,但无法将子类别精确地放在其父类别下 我能够显示类别及其子类别。但我需要仅当鼠标悬停或单击类别时才显示子类别。Php 如何使用codeigniter中数据库返回的数据显示类别和子类别菜单样式列表,php,codeigniter,codeigniter-2,Php,Codeigniter,Codeigniter 2,我试图显示一个垂直菜单(导航菜单),它有一组类别和子类别 我能够从数据库中获取数据,但无法将子类别精确地放在其父类别下 我能够显示类别及其子类别。但我需要仅当鼠标悬停或单击类别时才显示子类别。 这是我想做的快照 电子产品-->单击电子产品时,必须显示电子产品类别下的列表 汽车没有子类别*并非所有类别都有子类别 这是我的密码: 型号: function getCategories() { $this->db->select(); $query=$this-&g
这是我想做的快照 电子产品-->单击电子产品时,必须显示电子产品类别下的列表 汽车没有子类别*并非所有类别都有子类别 这是我的密码: 型号:
function getCategories()
{
$this->db->select();
$query=$this->db->get('ci_tbl_categories');
if ($query->num_rows() > 0)
{
$result =$query->result_array();
for($i=0;$i<count($result);$i++)
{
$query1=$this->db->query("select * from ci_tbl_subcategory where cat_id='".$result[$i]['cat_id']."'");
if($query1->num_rows() > 0)
{
$result[$i]['sub']=$query1->result_array();
}
else
{
$result[$i]['sub']=array();
}
}
//print_r($result);
return $result;
}
else
{
return $query->result_array();
}
}
function categories()
{
$this->load->model('categories');
$result['res'] = $this->categories->getCategories();
//print_r($result['res']);
$this->load->view('category',$result);
}
<script type="text/javascript">
$(document).ready(function(){
$("#main").click(function(){
$("#sub").slideToggle("slow");
// alert("clicked");
});
});
</script>
<body>
<div id="category" style="border-radius:5px; width:200px;background-color:#d2dbde; ">
<?php //echo count($res)."<br/>";?>
<div id="nav_head">Categories</div>
<?php for($a=0;$a<count($res);$a++)
{
//echo $row['cat_name']['subcat_name']."<br/>";
?><div id="main"><?php echo $res[$a]['cat_name'];?></div>
<?php
if(count($res[$a]['sub']) > 0)
{
?><div id="sub">
<?php for($b=0;$b<count($res[$a]['sub']);$b++) {?>
<div id="subcat"><?php echo $res[$a]['sub'][$b]['subcat_name'];?></div>
<?php }?>
</div>
<?php }} ?>
</div>
</body>
查看:
function getCategories()
{
$this->db->select();
$query=$this->db->get('ci_tbl_categories');
if ($query->num_rows() > 0)
{
$result =$query->result_array();
for($i=0;$i<count($result);$i++)
{
$query1=$this->db->query("select * from ci_tbl_subcategory where cat_id='".$result[$i]['cat_id']."'");
if($query1->num_rows() > 0)
{
$result[$i]['sub']=$query1->result_array();
}
else
{
$result[$i]['sub']=array();
}
}
//print_r($result);
return $result;
}
else
{
return $query->result_array();
}
}
function categories()
{
$this->load->model('categories');
$result['res'] = $this->categories->getCategories();
//print_r($result['res']);
$this->load->view('category',$result);
}
<script type="text/javascript">
$(document).ready(function(){
$("#main").click(function(){
$("#sub").slideToggle("slow");
// alert("clicked");
});
});
</script>
<body>
<div id="category" style="border-radius:5px; width:200px;background-color:#d2dbde; ">
<?php //echo count($res)."<br/>";?>
<div id="nav_head">Categories</div>
<?php for($a=0;$a<count($res);$a++)
{
//echo $row['cat_name']['subcat_name']."<br/>";
?><div id="main"><?php echo $res[$a]['cat_name'];?></div>
<?php
if(count($res[$a]['sub']) > 0)
{
?><div id="sub">
<?php for($b=0;$b<count($res[$a]['sub']);$b++) {?>
<div id="subcat"><?php echo $res[$a]['sub'][$b]['subcat_name'];?></div>
<?php }?>
</div>
<?php }} ?>
</div>
</body>
$(文档).ready(函数(){
$(“#主”)。单击(函数(){
$(“#sub”)。滑动切换(“慢”);
//警报(“点击”);
});
});
类别
非常感谢我认为您的代码需要进行两项更改
<?php
for($i=0;$i<count($result);$i++){
$query1=$this->db->query("select * from ci_tbl_subcategory
where cat_id='".$result[$i]['cat_id']."'");
if($query1->num_rows() > 0)
{
$result[$result[$result[$i]['cat_id']]]['sub']=$query1->result_array();
}
else
{
$result[$result[$result[$i]['cat_id']]]['sub']=array();
}
}
首先,在循环中创建带有静态id的div
,将无法工作,因为最终会有多个具有相同id的div
。请尝试使用类名
<div class="main">
<div class="sub">
首先,非常感谢。我尝试了你的代码,但遇到了问题。它显示消息:未定义索引:$result[$result[$result[$i]['cat\u id']['cat\u id']]['sub']=$query1->result\u array()中的cat\u id;我已经修改了模型文件中的答案。如果您有任何问题,请告诉我……:)上面写着非法的偏移类型。我想我忘了告诉你。我已经在我的div中显示了内容。我需要的是,当单击或鼠标悬停在类别名称上时,它应该显示子类别