ajax初级示例(下拉列表联动)

朱雀 2022-03-18 11:17 371阅读 0赞

下拉列表联动效果如下动图:

20190220175059790.gif

数据库 表字段的信息

20190220173040565.png20190220173053957.png

新建web项目

jar包及js

20190220174044139.png

实体对象

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25haWxuZWhj_size_16_color_FFFFFF_t_70

index.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
  8. <script type="text/javascript">
  9. $(function() {
  10. $("#firstSelect").change(function(){
  11. $.get(
  12. "/ajax_test/AjaxK",
  13. {atel:$("#firstSelect").val()},
  14. function(data) {
  15. $("#secondSelect").empty();
  16. for(var i = 0; i < data.length; i++) {
  17. var dataObj = data[i];
  18. var $option = $("<option></option>");
  19. $option.text(dataObj.aname);
  20. $option.appendTo($("#secondSelect"));
  21. }
  22. },
  23. "json"
  24. );
  25. });
  26. $.get(
  27. "/ajax_test/AjaxT",
  28. function(data) {
  29. $("#firstSelect").empty();
  30. for(var i = 0; i < data.length; i++) {
  31. var dataObj = data[i];
  32. var $option = $("<option></option>");
  33. $option.text(dataObj.name);
  34. $option.val(dataObj.num);
  35. $option.appendTo($("#firstSelect"));
  36. }
  37. },
  38. "json"
  39. );
  40. });
  41. </script>
  42. <title>Insert title here</title>
  43. </head>
  44. <body>
  45. <div>
  46. <select name="first" id="firstSelect"></select>
  47. <select name="second" id="secondSelect"></select>
  48. </div>
  49. <table id="tabShow" border="1px">
  50. <thead>
  51. <tr>
  52. <td>NAME</td>
  53. <td>TEL</td>
  54. <td>MAIL</td>
  55. </tr>
  56. </thead>
  57. <tbody id="tableBody">
  58. </tbody>
  59. </table>
  60. </body>
  61. </html>

工具类

  1. package cla.fjh.tool;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7. public class JDBCUtil {
  8. static String driverClass = null;
  9. static String url = null;
  10. static String name = null;
  11. static String password= null;
  12. static{
  13. driverClass = "com.mysql.jdbc.Driver";
  14. url = "jdbc:mysql://localhost/ajaxt";
  15. name = "root";
  16. password = "root";
  17. }
  18. /**
  19. * 获取连接对象
  20. * @return
  21. */
  22. public static Connection getConn(){
  23. Connection conn = null;
  24. try {
  25. Class.forName(driverClass);
  26. //静态代码块 ---> 类加载了,就执行。 java.sql.DriverManager.registerDriver(new Driver());
  27. //DriverManager.registerDriver(new com.mysql.jdbc.Driver());
  28. //DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=greatsqldb");
  29. //2. 建立连接 参数一: 协议 + 访问的数据库 , 参数二: 用户名 , 参数三: 密码。
  30. conn = DriverManager.getConnection(url, name, password);
  31. } catch (Exception e) {
  32. e.printStackTrace();
  33. }
  34. return conn;
  35. }
  36. /**
  37. * 释放资源
  38. * @param conn
  39. * @param st
  40. * @param rs
  41. */
  42. public static void release(Connection conn , Statement st , ResultSet rs){
  43. closeRs(rs);
  44. closeSt(st);
  45. closeConn(conn);
  46. }
  47. public static void release(Connection conn , Statement st){
  48. closeSt(st);
  49. closeConn(conn);
  50. }
  51. private static void closeRs(ResultSet rs){
  52. try {
  53. if(rs != null){
  54. rs.close();
  55. }
  56. } catch (SQLException e) {
  57. e.printStackTrace();
  58. }finally{
  59. rs = null;
  60. }
  61. }
  62. private static void closeSt(Statement st){
  63. try {
  64. if(st != null){
  65. st.close();
  66. }
  67. } catch (SQLException e) {
  68. e.printStackTrace();
  69. }finally{
  70. st = null;
  71. }
  72. }
  73. private static void closeConn(Connection conn){
  74. try {
  75. if(conn != null){
  76. conn.close();
  77. }
  78. } catch (SQLException e) {
  79. e.printStackTrace();
  80. }finally{
  81. conn = null;
  82. }
  83. }
  84. }

servlet类:AjaxT

  1. package cla.fjh.ajax;
  2. import java.io.IOException;
  3. import java.sql.Connection;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import com.alibaba.fastjson.JSON;
  13. import cla.fjh.dao.BTest;
  14. import cla.fjh.tool.JDBCUtil;
  15. public class AjaxT extends HttpServlet {
  16. private static final long serialVersionUID = 1L;
  17. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  18. Connection conn = null;
  19. PreparedStatement state = null;
  20. ResultSet resultSet = null;
  21. try {
  22. String sql = "select * from btest;";
  23. conn = JDBCUtil.getConn();
  24. state = conn.prepareStatement(sql);
  25. resultSet = state.executeQuery();
  26. List<BTest> list = new ArrayList<BTest>();
  27. while(resultSet.next()) {
  28. BTest bt = new BTest(resultSet.getString("name"), resultSet.getString("num"));
  29. list.add(bt);
  30. }
  31. String jsonString = JSON.toJSONString(list);
  32. System.out.println(jsonString);
  33. response.setCharacterEncoding("UTF-8");
  34. response.getWriter().print(jsonString);
  35. } catch (Exception e) {
  36. e.printStackTrace();
  37. }
  38. }
  39. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  40. doGet(request, response);
  41. }
  42. }

servlet类:AjaxK

  1. package cla.fjh.ajax;
  2. import java.io.IOException;
  3. import java.sql.Connection;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import com.alibaba.fastjson.JSON;
  13. import cla.fjh.dao.ATest;
  14. import cla.fjh.tool.JDBCUtil;
  15. public class AjaxK extends HttpServlet {
  16. private static final long serialVersionUID = 1L;
  17. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  18. Connection conn = null;
  19. PreparedStatement state = null;
  20. ResultSet resultSet = null;
  21. String atel = request.getParameter("atel");
  22. try {
  23. String sql = "select * from atest where atel = " + atel;
  24. conn = JDBCUtil.getConn();
  25. state = conn.prepareStatement(sql);
  26. resultSet = state.executeQuery();
  27. List<ATest> list = new ArrayList<ATest>();
  28. while(resultSet.next()) {
  29. ATest at = new ATest(resultSet.getString("aname"), resultSet.getString("atel"),resultSet.getString("amail"));
  30. list.add(at);
  31. }
  32. String jsonString = JSON.toJSONString(list);
  33. response.setCharacterEncoding("UTF-8");
  34. response.getWriter().print(jsonString);
  35. } catch (Exception e) {
  36. e.printStackTrace();
  37. }
  38. }
  39. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  40. doGet(request, response);
  41. }
  42. }

web.xml

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25haWxuZWhj_size_16_color_FFFFFF_t_70 1

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25haWxuZWhj_size_16_color_FFFFFF_t_70 2

发表评论

表情:
评论列表 (有 0 条评论,371人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Ajax动态列表

     许多页面上都涉及有下拉框,即select标签。对于简单的下拉框,被选择的数据是不需要改变的,我们可以用写死。这样下拉框的数据永远都是那几条。   示例: 1 <s