下拉菜单数据的数组

发布于 2024-12-07 12:34:37 字数 140 浏览 0 评论 0原文

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

There are some ideas for creating a dropdown menu from data populated from xml or json. But how can I do this purely with php? A possible method is to create a multi-level array. But what is the best way to create it from mysql data (having parent id for sub-menus), and how to effectively read the array (via a foreach loop?)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

茶花眉 2024-12-14 12:34:37

对于 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”(如果是) null 那么它将是一个根级别,除此之外,它将是一个子级别,另一列“路径”和“标题”,您也可以添加一个“权重”列来对它们进行排序。

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

for php side, lets assume you retrieve using that query what is in the table in an array of format:

$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>';

for mysql database, have a column of "parent_id" if it is null then it would be a root level, other than that, it would be a sub there, another column of "path" and "title,you can add a "weight" column as well to order them.

NOTE: this is untested code

巡山小妖精 2024-12-14 12:34:37

我喜欢循环遍历从 mysql 中提取的行并创建一个数组,其中键是输入的值,值是文本。所以,如果你想创建一个像这样的下拉菜单:

<input value="UT">Utah</input>
<input value="VT">Vermont</input>
<input value="NV">Nevada</input>
<input value="CA">California</input>

我会创建一个看起来像这样的数组:

array(

       "UT" => "Utah",
       "VT" => "Vermont",
       "NV" => "Nevada",
       "CA" => "California",
)

使用 foreach 将数组转换为 html 是非常容易的。

I like to loop through the rows that are pulled from mysql and create an array where the key is the value for the input and the value is the text. So, if you wanted to create a dropdown like:

<input value="UT">Utah</input>
<input value="VT">Vermont</input>
<input value="NV">Nevada</input>
<input value="CA">California</input>

I would create an array that looked like this:

array(

       "UT" => "Utah",
       "VT" => "Vermont",
       "NV" => "Nevada",
       "CA" => "California",
)

It's very easy to translate the array into the html using a foreach.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文