2016-10-25 65 views
0

對不起,如果我的問題重複,但無法找到正確的答案,我有一個HTML選擇組,它使用數據庫數組列表填充。這是通過使用JSTL和Servlets完成的。捕捉HTML選擇組中的選定項目的值

當我的List被填充時,通過雙擊其中的項目來使用它,這是通過使用JavaScript來完成的。 (我知道編寫腳本是一種不好的做法,但這次卻不行)

問題出現在我雙擊列表中的項目時,會產生一個post方法指向另一個servlet,這個submited的值到這個servlet是完整的ArrayList,而不僅僅是雙擊的值。

任何人都可以給我一個線索如何解決這個問題嗎?

//-----------Filling Array List from value in data base and set Response 

      ArrayList<String> queryReclamosPendientes = new ArrayList<String>(); 
      queryReclamosPendientes = DaoMVC.listaReclamosDeUnTipo(0); 
      request.setAttribute("conteo0", queryReclamosPendientes); 

當響應被送到JSP這是我如何填寫我的列表

<!-- HTML code Filling the list--> 

<select size="10"> 
       <c:forEach var="conteo0" items="${conteo0}"> 
        <option ondblclick="myFunction()" value="${conteo0}">${conteo0}</option> 
       </c:forEach> 
      </select> 


<!-- Scriplet to activate the list Double click and send a post to other servlet--> 

      <script> 
       function myFunction() { 
        document.body.innerHTML += '<form id="dynForm" action="${pageContext.request.contextPath}/ServletServirReclamos" method="post"><input type="hidden" name="numeroSeguimiento" value="${conteo0}"></form>'; 
        document.getElementById("dynForm").submit(); 

       } 
      </script> 

這工作得很好。但是現在,當我雙擊此列表中的元素是這條價值該servlet獲得。

'[D-100-16, F-101-16, E-102-16, C-103-16, D-105-16, D-106-16]' 

是否有一個值來獲取我點擊該項目還是有辦法指向選定項目,以做價值指數=「$ {conteo0 [$ SelectedPosition]}」只要拿到1價值而不是全部清單。

在此先感謝!

回答

0

好吧,我只是找到了答案

HTML

<select size="10" id="listaSeguimientos"> 
       <optgroup label="Reclamos por atender."> 
       <c:forEach var="conteo0" items="${conteo0}" varStatus="theCount"> 
        <option ondblclick='myFunction()'>${conteo0}</option> 
       </c:forEach> 
       </optgroup> 
      </select> 

JAVASCRIPT

function myFunction() { 

    var lista = document.getElementById("listaSeguimientos"); 
    var valorLista = lista.options[lista.selectedIndex].value; 


    document.body.innerHTML += '<form id="dynForm" action="${pageContext.request.contextPath}/ServletServirReclamos" method="post"><input type="hidden" id="numeroSeguimiento" name="numeroSeguimiento" ></form>'; 
    document.getElementById("numeroSeguimiento").value = valorLista; 
    document.getElementById("dynForm").submit(); 
    console.log("This is my value " + valorLista); 

} 

這2條線,其中主要

var lista = document.getElementById("listaSeguimientos"); 
var valorLista = lista.options[lista.selectedIndex].value; 

首先,你從JSP獲取列表,然後你在選擇指數期權的價值。

而這就是全部

0

您使用的是相同的變量名的項目和列表,然後我想你需要通過項目給myFunction

<c:forEach var="item" items="${conteo0}"> 
    <option ondblclick="myFunction(item)" value="${item}">${item}</option> 
</c:forEach> 
+0

謝謝!它沒有工作,但你給了我一個我錯過了什麼的想法。我會添加正確的答案:D –