在PHP中选择缩进和格式化的项目

时间:2009-07-21 12:44:11

标签: php html magento html-select

我需要显示一个选择框,它将一次显示所有类别和子类别。

我想要显示所有类别最左边&粗体,而所有子类别将属于相应的类别,但将缩进和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`

等。所有具有子类别的类别都应为粗体,所有子类别应为斜体。

我希望现在能更明确地了解我想要实现的目标。

5 个答案:

答案 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;
}