我需要显示一个选择框,它将一次显示所有类别和子类别。
我想要显示所有类别最左边&粗体,而所有子类别将属于相应的类别,但将缩进和Italized。
我们如何在PHP中创建这样的选择列表?
我在Magento电子商务(www.magentocommerce.com)管理面板中有类似的内容。
从DB中检索类别,有时可以达到6级深度,例如:
` Cat 1
Cat 1A
Cat 1B
Cat 2
Cat 2A
Cat 2AA
Cat 2AB
Cat 2AC
Cat 2ACA
Cat 3`
等。所有具有子类别的类别都应为粗体,所有子类别应为斜体。
我希望现在能更明确地了解我想要实现的目标。
答案 0 :(得分:5)
您必须在select元素中使用optgroup元素:
<select name="Namen" size="6">
<optgroup label="Namen mit A">
<option label="Anna">Anna</option>
<option label="Achim">Achim</option>
<option label="August">August</option>
</optgroup>
<optgroup label="Namen mit B">
<option label="Berta">Berta</option>
<option label="Barbara">Barbara</option>
<option label="Bernhard">Bernhard</option>
</optgroup>
</select>
然后您可以通过
设置它们的样式optgroup {
font-weight:bold;
/*etc*/
}
答案 1 :(得分:0)
好吧,你可以在每个想要缩进的元素之前添加几个,比如:
<select id="mySelect">
<option value="topLevelFoo">Foo</option>
<option value="subBar">& nbsp;& nbsp;Bar</option>
<option value="subBaz">& nbsp;& nbsp;Baz</option>
</select>
这有点难看,但它应该足以实现你的目标(至少在视觉上)。另一种常见的方法是使用连字符来表示这些类型的选择。
祝你好运!编辑:呃,看起来SO编辑器正在呈现& nbsp;
元素。我在&符号之后添加了空格来解决这个问题,但这些空格实际上并没有出现在你的代码中。
答案 2 :(得分:0)
使用optgroup标记加粗类别。
<html>
<body>
<select>
<optgroup label="Numbers">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</optgroup>
<optgroup label="Letters" disabled="true">
<option value="4">A</option>
<option value="5">B</option>
<option value="6">C</option>
</optgroup>
</select>
</body>
答案 3 :(得分:0)
在Html源代码中查找您想要的内容,然后您就知道php将输出什么代码。然后你必须这样做。如何完成取决于您的数据存储方式等。 如果您的问题没有解决,请更具体
答案 4 :(得分:0)
这与PHP无关,你需要的是一些HTML和CSS来设计它。
您可以创建一个包含以下标识的列表:
<select class="category">
<option>Category</option>
<optgroup label="Optional label">
<option>More options</option>
</optgroup>
</select>
然后您可以像这样设置样式:
.category option {
font-weight: bold;
}
.category optgroup option {
font-style: italic;
}