一尘不染

如何提交从jsp页面的下拉列表中选择的选项以执行mysql查询

jsp

我的项目是StaffAllocation,我想从数据库中检索信息。我很新,这是我的第一个项目。我创建了一个staffnames从我的一张桌子中检索的下拉列表。现在,我想执行查询操作以staffnames从下拉列表中查看所选内容的详细信息。以下是我的编码,这是不正确的:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  pageEncoding="ISO-8859-1"%>
  <%@ page import="java.sql.*" %>
  <%@ page import="java.io.*" %>
  <%@ page import="java.lang.*" %>
  <%@ page import="javax.servlet.*" %>
  <%@ page import="javax.servlet.http.*" %>
  <%ResultSet resultset =null; %>
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Staff Details</title>
  </head>
  <BODY>
  <form method=post>
  <h3>Select Stafftype:</h3>
  <p><input type="radio" name="Stafftype" value="Male"> Male</input></p>
  <p><input type="radio" name="Stafftype" value="Female"> Female</input></p>
  <input type="submit" value="Submit">
  </form>
  <%
  try{

    Class.forName("com.mysql.jdbc.Driver");
    Connection connection =      DriverManager.getConnection("jdbc:mysql://localhost:3306/StaffAllocation?  user=root&password=success");
    Statement statement = connection.createStatement() ;
    String Stafftype= request.getParameter("Stafftype");
    out.print(Stafftype);
    if(Stafftype.contentEquals("Male")){
    resultset=statement.executeQuery("select * from tblstaffdetails where Stafftype=  'Male'");
    }
    else if(Stafftype.contentEquals("Female")){
        resultset=statement.executeQuery("select * from tblstaffdetails where   Stafftype= 'Female'");
    }
    else
    {
        System.out.println("your coding is wrong");
    }
   %>

    <select> <% while(resultset.next()){ %>
    <option><%= resultset.getString(2)%></option>
   <%} %>

   <%

   String StaffName= request.getParameter("StaffName"); 
   int staffId;
   String subcode;
   if(StaffName != null) {
   resultset=statement.executeQuery("SELECT a.staffId, a.StaffName, b.subcode FROM tblstaffdetails a LEFT JOIN tblsubhandled b ON a.staffId = b.staffId where StaffName='request.getParameter('StaffName')'");

     }       
     }
    catch(Exception e)
    {
         out.println("wrong entry"+e);
    }
    %>
   <form method = "get">
   <br><br>
   <input name="Submit" type="button" value="Submit">
   </form>
   </body>
   </html>`

表格:

tblstaffdetails-(1).staffId(2).StaffName(3).Stafftype(男性或女性)

tblsubhandled-(1).staffId(2).subcode


阅读 191

收藏
2020-06-10

共1个答案

一尘不染

我整理了示例实现供您参考。您可以这样实现。您需要做的就是包括jQuery插件。示例代码就是这样,

 $.ajax({
    url : 'ur_servlet_url' + selValue,
    type : "POST",
    async : false,
    success : function(data) {
        //Sample data
        var data = "<select id='child'>
                    <option value='11'>Value11</option></select>"
        $("#fillValue").html(data);
    }
});

您需要编写类似于select标签的Java响应,并将其返回给您的ajax响应。最后,您可以像这样填充第二个下拉列表。让我知道是否有帮助。

2020-06-10