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

时间:2013-11-04 05:14:50

标签: java html mysql jsp servlets

我的项目是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

2 个答案:

答案 0 :(得分:0)

我摆弄sample implementation供你参考。你可以这样实现。您需要做的就是包含jQuery插件。示例代码lke this,

 $.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响应中。最后你可以像这样填写第二个下拉列表。如果这有帮助,请告诉我。

答案 1 :(得分:0)

<form method="post" action="select.jsp">
    <select name="sell">
       <option value="Alto">Alto</option>
       <option value="Esteem">Esteem</option>
       <option value="Honda City">Honda City</option>
       <option value="Chevrolet">Chevrolet</option>
    </select>
    <br>
    <input type="Submit" value="Submit">
</form>
<%
  String st=request.getSelectedIndex("sell");
  if(st!=null){
    out.println("You have selected: "+st);
  }
%>