我之前问了一个类似的问题,但我会以不同的方式再问一次。如何使用PHP& amp缩进选择下拉菜单缩进我所拥有的类别和无限子类别? CSS?
这是我的PHP代码。
while (list($id, $parent_id, $category) = mysqli_fetch_array($r, MYSQLI_NUM)) {
// Add to the select menu:
echo '<option value="' . $id . '">' . $category . '</option>\n';
}
这是输出。
1. Apple
2. Arts & Entertainment
1. Amusement
2. Art
3. Artists
1. A
1. a1
2. a2
2. B
3. C
4. D
3. Automotive
4. Network
5. Server
6. Web Design
1. CSS
2. HTML
这些数字可以让您更轻松地查看类别和子类别。
答案 0 :(得分:0)
过去我通过将
添加到每个嵌套选项的内容中来完成此操作。
$spacer = ' ';
while (list($id, $parent_id, $category) = mysqli_fetch_array($r, MYSQLI_NUM)) {
$padding = str_repeat($spacer, $depth);
// Add to the select menu:
echo '<option value="' . $id . '">' . $padding . $category . '</option>\n';
}
$depth
表示“步骤”,选项应缩进。
我完成此操作的方法是首先将我的选项放入一个多维数组中,其中子项存储为父项的数组......
像这样:
Array(
1 => Array(
'name' => 'Apple'
),
2 => 'Arts & Entertainment',
'children' => Array(
1 => Array(
'name' => 'Amusement'
),
2 => Array(
'name' => 'Art'
),
3 => Array(
'name' => 'Artists'
'children' => Array(
1 => Array(
'name' => 'A',
'children' => Array(
1 => Array(
'name' => 'a1'
)
)
)
)
)
)
)
)
然后我使用递归函数遍历数组,该函数进入每个嵌套数组(如果存在)并将$padding
附加到'name'
值,将选项标记包装在其周围然后返回它。返回的字符串将附加到之前所有调用的返回值,并且您将看到缩进的选项菜单。魔法。