2016-03-31 15 views
0

Bu soru, How to post multiple <input type="checkbox" /> as array in PHP? ile aynıdır ancak java sunucu kurulumumda özüm çalışamıyorum. Gruplandırılmış onay kutularının name özelliğine bir [] ekleme uygulaması kullanırken, yalnızca ilk kontrol edilen seçeneği alırım. Sadece tek bir öğe içeren asıl yayınlanmış dizi olup olmadığından emin değilim veya doğru sunucu tarafına erişmiyorsam emin değilim. Burada java değerini kontrol etmek ne olduğunu: Bu countries[]: US yazdırırBirden çok <input type = "checkbox" /> Java sunucu uygulamasına dizi olarak nasıl yayınlanır?

@Override 
public String execute(HttpServletRequest request, HttpServletResponse response) throws Exception { 
    for(String name : request.getParameterMap().keySet()){  
     System.out.println(name +": " + request.getParameter(name));   
    } 
} 

, ben ABD-giriş sonra kontrol daha checboxes olsa bile. Değer, kontrol kutusunun işaretli olduğu ilk kutucuktan sonra değişir. Neyi yanlış yapıyorum?

<form action="mypage" method="post"> 
    <input id="cb-country-gb" type="checkbox" name="countries[]" class="hide" value="GB"/> 
    <input id="cb-country-us" type="checkbox" name="countries[]" class="hide" value="US"/> 
    <input id="cb-country-ge" type="checkbox" name="countries[]" class="hide" value="GE"/> 
    <input id="cb-country-es" type="checkbox" name="countries[]" class="hide" value="ES"/> 
    <button type="submit" class="btn btn-primary">Search</button> 
</form> 
+0

'getParameterValues ​​(" ülkeler ")' nı kullanın, btw '' '' '' '' java'da gerek olmadığından bir php olayıdır – Ramanlfc

+0

harika. Açıklama için teşekkürler. – KjetilNordin

cevap

1

Sen belirli bir istek parametresi vardır tüm değerleri içeren String nesneleri dizisi döndürür [getParameterValues][1] kullanmalıdır kullanmak gerekir:

Testi olduğunu aşağıdaki kodla:

@Override 
public String execute(HttpServletRequest request, HttpServletResponse response) throws Exception { 
    for(String name : request.getParameterMap().keySet()){ 
     for(String value : request.getParameterValues(name)){ 
      System.out.println(name +": " + value);   
     } 
    } 
} 
1

Birden onay kutularını işaretlerseniz istek adıyla countries[] ile birden çok parametre içerir:

İşte benim HTML.

Yalnızca request.getParameter("countries[]") numaralı telefonu ararsanız, ilk parametre değeri döndürülür.

Bunun yerine

String[] checked = request.getParameterValues("countries[]"); 
if (checked != null) 
    ... 
+0

Teşekkürler. Bu çok yardımcı oldu! – KjetilNordin

İlgili konular