2014-10-05 103 views
0

我需要創建一個jsp頁面來編輯來自oracle數據庫的數據。 我認爲我能做的最簡單的事情是創建一個組合框,顯示重要信息 (在這種情況下:id +材料的名稱),但填寫文本字段時出現問題。使用來自組合框的信息填充文本框

我的想法是在組合框上的文本發生變化後填寫這些字段,但我真的不知道該怎麼做。我知道使用組合框的信息,我必須做一個查詢來獲取數據,然後回想一下jsp或其他東西,但是我不確定是否必須調用一個Servlet或者什麼是最好的方法來實現它。

對不起,如果這個問題重複,但我沒有找到任何有用的文章。

一些代碼:

<sql:setDataSource dataSource="bd/login"/> 
    <sql:transaction> 
     <%--Vamos a hacer una consulta a la bd--%> 
     <sql:query var="resultado"> 
      select * from material order by codigo 
     </sql:query> 
    </sql:transaction> 
    <form name="formActualizar" action="../ServletActualizarDatos" method="POST"> 





     <select name="select" styleId = "tempId" onchange="ActualizarDatos()"> 
      <option selected="selected"> -- Elija material --</option> 
      <c:forEach var="material" items="${resultado.rows}"> 
       <option value="${material.codigo}">${material.codigo} ${material.nombre}</option> 
      </c:forEach> 
     </select><br/><br/> 


     Código<br/> 
     <input type="text" name="codigo" value="" /></p> 
     Nombre<br/> 
     <input type="text" name="nombre" value=""/></p> 
     Resistencia<br/> 
     <input type="text" name="resistencia" value="" /></p>  

     <input type="submit" name="bt" value="Actualizar Material" /> 
    </form> 

    <script> 
      function ActualizarDatos() 
      { 
       String texto = this.options[this.selectedIndex].text; 
       Material m = ServletActualizarDatos.ObtainMaterialFromCombo(text); 
       this.form['codigo'].value=String.valueOf(m.getCodigo()); 
       this.form['nombre'].value=m.getNombre(); 
       this.form['resistencia'].value=String.valueOf(m.getResistencia()); 
      } 
    </script> 

謝謝您的幫助。

///代碼,您似乎並不工作還沒有,事件不叫

回答

0

您需要jvascript處理事件時選擇框的變化,從這個選擇框中選擇的值設置輸入字段的值和選定的選項。

<select name="select" styleId = "tempId" onchange="this.form['codigo'].value=this.value;this.form['nombre'].value=this.options[this.selectedIndex].text;"> 
+0

你能修改爲什麼我的代碼現在不工作嗎?我收回了我做錯事 – 2014-10-05 19:37:32

+0

是的,你做錯了,但這是另一個問題。 – 2014-10-05 19:44:49