php - 下拉菜单数据数组

标签 php javascript mysql html menu

从 xml 或 json 填充的数据创建下拉菜单有一些想法。但是我怎样才能纯粹用 php 来做到这一点呢?一种可能的方法是创建一个多级数组。但是从 mysql 数据创建它的最佳方法是什么(子菜单有父 ID),以及如何有效地读取数组(通过 foreach 循环?)?

最佳答案

对于 php 端,假设您使用该查询以数组格式检索表中的内容:

$menu = array(
   'page/1' => 'about',
   'page/2' => 'photos',
   'menu-title' =>  array('page/4' => 'sub-menu-1','page/5' => 'sub-menu-2')
);

echo '<ul>';
foreach($menu as $key => $value){
  if(is_string($value)){
     echo '<li><a href="'.$key.'">'.$value.'</a></li>';
  }
  if(is_array($value)){
    echo '<ul>';
    echo '<li><a href="#">'.key($value).'</a></li>';
    foreach($value as $sub_key => $sub_value){
      echo '<li><a href="'.$sub_key .'">'.$sub_value.'</a></li>';
    }
    echo '</ul>';
  }
}
echo '</ul>';

对于mysql数据库,有一个“parent_id”列,如果它是空的,那么它将是一个根级别,除此之外,它将是一个子级,另一列“路径”和“标题,你也可以添加一个”重量“列来订购它们。

注意:这是未经测试的代码

关于php - 下拉菜单数据数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7618415/

相关文章:

php - MYSQL 数据库列 id 跟踪插入 - Laravel

javascript - 从所选菜单中选择 ID 后,在文本框中显示价格

javascript - 复选框中的 React-hook-form 自定义 onChange 处理程序 -> 更改未注册

javascript - 在 Reactstrap 中使整张卡片可点击

javascript - 使用 javascript 打开 base64 编码的 pdf 文件。文件大小大于 2 MB 的问题

php - 从最大数量的项目中将数组存储在 Mysql 数据库中

mysql - 当我尝试连接 mysql 服务器时访问被拒绝

mysql - mysql在哪里存储数据?

php - 如何使用 PHP 扩展安装 Gearman

php - Laravel Eloquent 枢轴的负载关系