2014-10-05 101 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