Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

cách tìm nạp dữ liệu trong JSP bên trong bảng dựa trên lựa chọn thả xuống

Tôi tạo ra một ví dụ hoàn chỉnh để giải quyết vấn đề của bạn. Bạn chưa xác định rõ ràng nơi bạn gặp lỗi và hơi khó hiểu mã của bạn.

Chỉ cần cố gắng thực thi chương trình này, tôi đảm bảo rằng nó chắc chắn sẽ giải quyết được vấn đề của bạn và giúp bạn hiểu rõ hơn về JSP, Servlet và cả DBCode.

Khi bạn chạy chương trình này.

Hai trình đơn thả xuống trong trang JSP.

1 - để hiển thị tất cả các trạng thái (truy xuất giá trị động mặc định từ cơ sở dữ liệu)

2 - cho các thành phố hiển thị khi bạn chọn bất kỳ tiểu bang nào.

Khi bạn chọn bất kỳ bang nào, thành phố sẽ được hiển thị trên hộp tổ hợp thành phố và sau khi làm mới trang đã chọn, vị trí bang đã chọn cũng sẽ ổn định trong tổ hợp bang.

Cũng như khi bạn chọn trạng thái, tôi đã hiển thị một bản ghi từ bảng khác nhau ở định dạng bảng hoặc có thể nói bằng cách sử dụng các thẻ table, tr, td.

Ba bảng trong cơ sở dữ liệu - Bang, thành phố, dữ liệu

Bang - để hiển thị tất cả các bang mặc định trong tổ hợp bang khi bạn chạy ví dụ. Thành phố - khi bạn chọn bang thì thành phố sẽ đến dựa trên dữ liệu bang đã chọn - khi bạn chọn dữ liệu bang sẽ hiển thị ở dạng bảng (Chỉ lấy tất cả dữ liệu thay vì dựa trên từ bất cứ thứ gì).

Tệp - JSP (Máy khách, Mã phía máy chủ), Servlet (Mã phía máy chủ), DBCoding (Mã cơ sở dữ liệu)

IDE - MyEclipseDatabase - MS SQL 2012

Mã hóa JSP

<%@ page language="java" import="java.util.*,DBCode.*" pageEncoding="ISO-8859-1"%>
<%@page import="java.sql.ResultSet"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'MyJsp.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <script type="text/javascript">
    function abc()
    {
        document.forms["formname"].submit();
    }
    </script>
  </head>
  <%

  DBCoding db = new DBCoding();
  ArrayList al = new ArrayList();
  al = db.RetrieveStateName();
  String value1="";
   %>
  <body>
  <form action="Servlet1" method="post" name="formname" id="formname">
    <select id="selectvalue" name="selectvalue" onchange="abc()";>

    <%if(request.getParameter("abc")!=null)
    {
    String result = request.getParameter("abc");
    %>
        <%for(int i=0;i<al.size();i++)
        {
            if(al.get(i).equals(result))
            {%>
            <option value= "<%=al.get(i) %>" selected="selected"><%=al.get(i) %></option>
            <%}
            else
            {%>

            <option value= "<%=al.get(i) %>"><%=al.get(i) %></option>
            <%} %>
        <%}%>
    <%}
    else
    { %>

    <%for(int i=0;i<al.size();i++)
    {
     %>
    <option value= "<%=al.get(i) %>"><%=al.get(i) %></option>
    <%} %>

    <%} %>

    </select>

    <%ArrayList ob = new ArrayList(); %>
    <%if(request.getAttribute("City_Name")!=null)
    {
        ob = (ArrayList)request.getAttribute("City_Name");
        %>
        <select id="selectcity" name="selectcity">
        <%for(int j=0;j<ob.size();j++)
        {
        %>
            <option><%=ob.get(j)%></option>
       <%} %>
        </select><br/><br/>
        <table>
        <tr>
        <td>Id</td>
        <td>Name</td>
        <td>Age</td>
        <td>City</td>
        <%
              DBCoding db2 = new DBCoding();
              ArrayList al2 = new ArrayList();
              ResultSet rs = db2.getTable();
              while(rs.next()){
              %>
              <tr>
                <td><%=rs.getString(1) %></td>
                <td><%=rs.getString(2) %></td>
                <td><%=rs.getString(3) %></td>
                <td><%=rs.getString(4) %></td>
            </tr>
               <%
               } %>
    <%} 
    else
    {

    %>
        <select>
        <option></option>
        </select>
    <%} %>
    </form>
  </body>
</html>

Mã hóa Servlet

import java.io.IOException;
import java.util.*;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import DBCode.DBCoding;


public class Servlet1 extends HttpServlet {

    /**
     * Constructor of the object.
     */
    public Servlet1() {
        super();
    }

    public void destroy() {
        super.destroy(); 
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String getstatename = request.getParameter("selectvalue");

        DBCoding ob = new DBCoding();
        ArrayList al = new ArrayList();
        al = ob.RetrieveCityName(getstatename);

        request.setAttribute("City_Name", al);

        RequestDispatcher rd = request.getRequestDispatcher("MyJsp.jsp?abc="+getstatename);
        rd.forward(request, response);
    }
    public void init() throws ServletException {
        // Put your code here
    }

}

DBCoding - Mã cơ sở dữ liệu

import java.sql.*;
import java.util.*;
public class DBCoding
{
    Connection con;
    PreparedStatement ps;
    ResultSet rs;
    int result=0;
    public DBCoding()
    {
        try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            con=DriverManager.getConnection("jdbc:odbc:SearchAccount");
        }
        catch(Exception ee)
        {}
    }
    public ArrayList RetrieveStateName()
    {
        ArrayList ob = new ArrayList();
        try
        {
        ps = con.prepareStatement("select distinct states from States");
        rs = ps.executeQuery();
        while(rs.next())
        {
            ob.add(rs.getString(1));
        }
        }
        catch(Exception ee)
        {}
        return ob;
    }
    public ArrayList RetrieveCityName(String statename)
    {
        ArrayList ob = new ArrayList();
        try
        {
        ps = con.prepareStatement("select city from city where statename=?");
        ps.setString(1,statename);
        rs = ps.executeQuery();
        while(rs.next())
        {
            ob.add(rs.getString(1));
        }
        }
        catch(Exception ee)
        {}
        return ob;
    }

    public ResultSet getTable()
    {
        ResultSet rs = null;
        try
        {
        ps = con.prepareStatement("select * from data");
        rs = ps.executeQuery();
        }
        catch(Exception ee)
        {}
        return rs; 
    }
}

Sau khi thực hiện ví dụ này, nếu bạn nhận được bất kỳ truy vấn nào, chỉ cần gửi cho tôi một tin nhắn và tôi sẽ sắp xếp nó một cách chắc chắn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql - tạo ra một cơ chế tương tự như các chuỗi của Oracle

  2. xóa các mục nhập trùng lặp trong bảng

  3. Loại trừ các giá trị nhất định khi chia giá trị cố định cho các quốc gia dựa trên chia sẻ doanh thu hàng ngày

  4. c # mysql AddWithValue unicode

  5. Cách lặp qua các mảng để chèn vào cơ sở dữ liệu