Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak pobrać dane w JSP wewnątrz tabeli na podstawie wyboru z listy rozwijanej?

Tworzę kompletny przykład do rozwiązania Twojego problemu. Nie określiłeś jasno, gdzie pojawia się błąd i trochę trudno jest zrozumieć Twój kod.

Po prostu spróbuj uruchomić ten program, zapewniam, że na pewno rozwiąże Twój problem i zapewni lepsze zrozumienie również w JSP, Servlet i DBCode.

Po uruchomieniu tego programu.

Dwa rozwijane na stronie JSP.

1 - do wyświetlania wszystkich stanów (domyślna wartość dynamiczna pobierana z bazy danych)

2 - do wyświetlania miast po wybraniu dowolnego stanu.

Po wybraniu dowolnego stanu, miasto zostanie wyświetlone w polu kombi miasta, a po odświeżeniu strony pozycja wybranego stanu będzie stabilna również w combo stanów.

Podobnie jak po wybraniu stanu, wyświetlałem rekordy z innej tabeli w formacie tabelarycznym lub mogę powiedzieć za pomocą tagów table,tr,td.

Trzy tabele w bazie danych - Stany, miasto, dane

Stany - aby wyświetlić wszystkie stany domyślnie w combo stanów po uruchomieniu example.City - po wybraniu stanu miasto będzie oparte na wybranym stanie.data - po wybraniu stanu dane będą wyświetlane w formie tabelarycznej (tylko pobrane wszystkie dane zamiast na podstawie z czegokolwiek).

Pliki - JSP (kod po stronie klienta, kod po stronie serwera), serwlet (kod po stronie serwera), DBCoding (kod bazy danych)

IDE - MyEclipseDatabase - MS SQL 2012

Kodowanie 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>

Kodowanie serwletów

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 - Kod bazy danych

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; 
    }
}

Po wykonaniu tego przykładu, jeśli otrzymasz jakieś zapytanie, po prostu napisz do mnie wiadomość, a ja na pewno to rozwiążę.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa zawieszenie transakcji na wiosnę?

  2. Jak przyciąć czas ze znacznika czasu za pomocą php

  3. bbPress:Jak znaleźć mapowania załączników do odpowiednich postów

  4. Jak wybrać kolumnę (kolumny) według ich pozycji liczbowej w tabeli?

  5. Jak zmienić wszystkie tabele w mojej bazie danych na zestaw znaków UTF8?