Javascript 如何在选择<;时从数据库中获取多个值并显示在文本框中;选项>;在jsp中 我的表是:Users,它由以下列组成。 i) 。罗吉尼 (ii)。名称 (iii)。名字 四)。姓氏 v) 。地址

Javascript 如何在选择<;时从数据库中获取多个值并显示在文本框中;选项>;在jsp中 我的表是:Users,它由以下列组成。 i) 。罗吉尼 (ii)。名称 (iii)。名字 四)。姓氏 v) 。地址,javascript,java,html,database,jsp,Javascript,Java,Html,Database,Jsp,在下面的示例中,我们在下拉列表中填充名称,一旦下拉列表值发生变化,我们需要在文本框中打印相应的firstname、lastname、address、loginid。 这就是我们需要实现的目标 这是我的jsp代码。 <% DBConnection dbc=new DBConnection(); Connection con=dbc.getNewConnection(); Statement st = null;

在下面的示例中,我们在下拉列表中填充名称,一旦下拉列表值发生变化,我们需要在文本框中打印相应的firstname、lastname、address、loginid。 这就是我们需要实现的目标

这是我的jsp代码。

        <%   DBConnection dbc=new DBConnection();   
             Connection con=dbc.getNewConnection();
             Statement st = null;
             ResultSet rs = null;
        try
        {
           st=con.createStatement() ;
           rs=st.executeQuery("select * from Users"); 
           %>
 
   <select id="selectBox" >

         <%  while(rs.next()){ %>
                <option><%= rs.getString(2)%></option>


      <%} %>
    </select>
    <input id="loginid" type="text" value="" />
    <input id="firstname" type="text" value="" />
    <input id="lastname" type="text" value="" />
    <input id="address" type="text" value="" />

因此,如何基于从用户表中选择的名称来填充上述4个值。

请帮助我如何编写Javascript函数来实现这一点。

您首先需要编写
onchange
事件处理程序,因此每当选择框值发生更改
时,就会调用此
处理程序,然后将
select
的值发送到后端页面(servlet)。因此,ajax代码如下所示:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  $('select#selectBox').on('change', function() {
     var value = $(this).val(); //get value from select-box
      $.ajax({
        type: 'POST',//can be post request or get 
        url: url,//put url here where you need to send
        data: {
          'value': value//pass value 
        },
        success: function(response) {
          //result will come here 
           //if recieve as html use           
          $("somedivclass").html(response)        
          //if recieve as separted commas         
          var result = response.split(",")
          //access same using result[0],result[1] ..etc
          //add value to input using
          $("#loginid").val(result[0]);
         //same for other  
    
        }
      });
    })

您好,您可以将表单提交到服务器并加载数据,也可以使用ajax来完成同样的操作。@Swati,我不了解ajax,您能否提供一些示例代码以满足我的要求?它已经工作了….,谢谢您的帮助!。。
String value = (String) request.getParameter("value");
String query = "select * from Users where yourcolumnanemtocompare=?";
PreparedStatement ps = con.prepareStatement(query);
ps.setString(1, value);
ResultSet rs = ps.executeQuery();
//if value there 
String text;
if (rs.next()) {
  //change value accordingly..i.e : rs.getstring..
  text = "<input id=" + loginid " type="
  text " value=" + rs.getInt(1) + " /><input id="
  firstname " type="
  text " value=" + rs.getInt(2) + " /> <input id="
  lastname " type="
  text " value=" + rs.getInt(3) + " /><input id="
  address " type="
  text " value=" + rs.getInt(4) + " />";
}

response.setContentType("text/html"); // Set content type 
response.setCharacterEncoding("UTF-8");
response.getWriter().write(text); // response to send back.
//or
if (rs.next()) {
  //change value accordingly..i.e : rs.getstring..
  text = rs.getInt(1) + "," + rs.getInt(2) + "," + rs.getInt(3) + "," + rs.getInt(4);
}
response.setContentType("text/plain"); // Set content type 
response.setCharacterEncoding("UTF-8");
response.getWriter().write(text); // response  to send back..
//or use json to send data..