2011-03-14 22 views
8

İyi günler!HTML Kutusu Seç, servisten seçilen veri

html'deki seçim kutusunda sorun yaşıyorum. Basit CRUD projemin DÜZENLENDİRİLMESİ kısmındayım ve kullanıcılar düzenleyebilmeden önce, seçilen veriler ilk önce gösterilecek ve veri tabanından sunucuya aktardım.

Şimdi, aldığım verilerin seçim kutusundaki SELECTED (varsayılan) olmasını istiyorum.

<select size="1" name="category"> 
     <option value ="1">Dogs</option> 
     <option value ="2">Cats</option> 
     <option value ="5">Others</option> 
</select> 

${product.category} ben böyle eklemeye çalıştık ama çalışmıyor. ($ {Product.category} == 1), seçilmiş = seçenek 1 ...

ben birinde THIS gibi bir şey gördüyseniz

<select size="1" name="category" selected=${product.category}> 
     <option value ="1">Dogs</option> 
     <option value ="2">Cats</option> 
     <option value ="5">Others</option> 
</select> 

ben .. Böyle bir şey yapmak istiyorum forumlar ama PHP formatındadır. JSP kullanarak nasıl yapabilirim?

Çok teşekkür ederim.

cevap

11

selected nitelik HTML <option> eleman gitmek vardır ve yalnızca seçenek değeri maçları ayarlanmalıdır edilmelidir. En şık yol, koşullu operatör ?:'u kullanmaktır. Eğer List veya Map bazı öğeleri varsa

<select name="category"> 
    <option value="1" ${product.category == '1' ? 'selected' : ''}>Dogs</option> 
    <option value="2" ${product.category == '2' ? 'selected' : ''}>Cats</option> 
    <option value="5" ${product.category == '5' ? 'selected' : ''}>Others</option> 
</select> 

iyi

olurdu. Örneğin. Category'un List<Category> adresinde id ve name özellikleri vardır.

<select name="category"> 
    <c:forEach items="${categories}" var="category"> 
     <option value="${category.id}" ${product.category == category.id ? 'selected' : ''}>${category.name}</option> 
    </c:forEach> 
</select> 

Bu şekilde, tüm seçenekler için aynı şeyi tekrarlamanız gerekmez.

+0

Teşekkürler Bay BalusC. :) – newbie

+0

Rica ederim. – BalusC