2016-10-25 26 views
0

申し訳ありませんが、私の質問が重複していますが、適切な答えが見つからない場合、HTML選択グループがあり、データベースの配列リストが表示されます。これは、JSTLとサーブレットを使用して行いました。選択した項目の値をHTMLで選択する選択グループ

私のリストがいっぱいになると、そのアイテムをダブルクリックして使用します。これはJavaScriptを使用して行われます。 (今はscritpletsを書くのは悪い習慣ですが、今度は悪いです)

リストの項目をダブルクリックすると、別のサーブレットを指し示すpostメソッドが生成され、サブミットされた値このサーブレットには、ダブルクリックされた値だけではなく、完全なArrayListがあります。

誰でも私にこれを解決する方法の手がかりを与えることができますか?応答はJSPに送信された

//-----------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); 

はここにある私は私のリストを埋める方法を

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

これは正常に動作します...しかし、今私は、このリスト内の要素をダブルクリックしたときに、これは値がありますサーブレットが取得します。

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

私がクリックした項目や数値を行うために選択した項目を指すように道のインデックスを取得する値がある=「$ {conteo0 [$のSelectedPosition]}」ちょうど1を取得しますすべてのリストではありません。

ありがとうございます!あなたが項目と、リストに同じ変数名を使用して、としている

答えて

0

MyFunctionのためにアイテムを渡す必要があると思う

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

} 
キー

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

まずあなたがJSPからリストを取得し、の

これらの2行は、あなたが選択したインデックスにあるオプションの値を取得します。

これはすべて

0

は、私は[OK]を私はちょうど答えを見つけ

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

ありがとうございます!それは仕事をしませんでしたが、私はあなたが私が逃したもののアイデアをくれました。私は適切な答えを追加します:D –

関連する問題