Girintili yanı sıra PHP biçimlendirilmiş kalemler seçin

4 Cevap php

Ben tek seferde tüm kategori ve alt kategorileri görüntüler bir seçme kutusu göstermek için bir ihtiyaç var.

I Tüm Kategoriler en sol & göstermek istiyorum cesur tüm alt kategoriler ilgili Kategoriler altında gelecek ama girintili ve Italized olacak ise.

Nasıl PHP böyle bir Select listesi oluşturabilir?

Ben Magento E-ticaret (www.magentocommerce.com) admin panelinde böyle bir şey var.

Kategoriler derin örneğin 6 seviyelerine kadar gidebilir DB ve zamanlarda alınır:

`Cat 1

Cat 1A

Cat 1B

Cat 2

Cat 2A

Cat 2AA

Cat 2AB

Cat 2AC

Cat 2ACA

Cat 3 `

vb alt kategoriler var Tüm kategoriler Cesur olmalı ve tüm alt kategoriler Italics olmalıdır.

Ben şimdi ne elde etmek istediklerini olarak daha açıktır umuyoruz.

4 Cevap

Siz seçin öğesi optgroup eleman kullanmak zorunda:

<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>

Daha sonra yoluyla onlara stil olabilir

optgroup {
    font-weight:bold;
    /*etc*/
}

Peki, sadece bu yüzden gibi, girinti istediğiniz her öğenin önce s 'bir çift ekleyebilirsiniz:

<select id="mySelect">
    <option value="topLevelFoo">Foo</option>
    <option value="subBar">& nbsp;& nbsp;Bar</option>
    <option value="subBaz">& nbsp;& nbsp;Baz</option>
</select>

Biraz çirkin, ama (en azından görsel) hedefinizi gerçekleştirmek için yeterli olmalıdır. Bunu yapmak için başka bir yaygın yolu seçimler bu tür belirtmek için tire kullanmaktır.

İyi şanslar!

Edit: SO editör & nbsp; elemanları render olduğu gibi Er, görünüyor. Ben bu almak için ampersanı sonra boşluk ekledim, ama alanlarda aslında kod görünür olmaz.

kalın kategorilerine optgroup etiketini kullanın.

<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>

Bu PHP ile ilgisi yok, ne gerek bu stil için bazı HTML ve CSS.

Böyle identations ile bir listesini yapabilirsiniz:

<select class="category">
    <option>Category</option>
    <optgroup label="Optional label">
        <option>More options</option>
    </optgroup>
</select>

Daha sonra bu gibi stil yapabilirsiniz:

.category option {
    font-weight: bold;
}

.category optgroup option {
    font-style: italic;
}