• AJAX省市县三级联动


    效果

    开发结构参考AJAX,JSON用户校验

    主要有两个核心文件

    1,处理输入字符,进行后台搜索的servlet

    linkage.java

     1 package org.guangsoft.servlet;
     2 
     3 import java.io.IOException;
     4 import java.io.PrintWriter;
     5 import java.sql.Connection;
     6 import java.sql.PreparedStatement;
     7 import java.sql.ResultSet;
     8 import java.util.ArrayList;
     9 import java.util.List;
    10 
    11 import javax.servlet.ServletException;
    12 import javax.servlet.http.HttpServlet;
    13 import javax.servlet.http.HttpServletRequest;
    14 import javax.servlet.http.HttpServletResponse;
    15 
    16 import org.guangsoft.bean.Address;
    17 import org.guangsoft.dao.SqlHelper;
    18 
    19 import com.google.gson.Gson;
    20 
    21 public class Linkage extends HttpServlet
    22 {
    23 
    24     public void doGet(HttpServletRequest request, HttpServletResponse response)
    25             throws ServletException, IOException
    26     {
    27         processRequest(request, response);
    28     }
    29 
    30     public void doPost(HttpServletRequest request, HttpServletResponse response)
    31             throws ServletException, IOException
    32     {
    33         processRequest(request, response);
    34     }
    35 
    36     protected void processRequest(HttpServletRequest request,
    37             HttpServletResponse response) throws ServletException, IOException
    38     {
    39         request.setCharacterEncoding("UTF-8");
    40         response.setCharacterEncoding("UTF-8");
    41         response.setContentType("text/html; charset=utf-8");
    42         PrintWriter out = response.getWriter();
    43         String provinceNo = request.getParameter("provinceNo");
    44         String cityNo = request.getParameter("cityNo");
    45         Connection connection = null;
    46         PreparedStatement prepareStatement = null;
    47         ResultSet resultSet = null;
    48         try
    49         {
    50             String sql = "";
    51             connection = SqlHelper.getConnection();
    52             if(cityNo != null && cityNo != "")
    53             {
    54                 sql = "select code,name from area where citycode = ?";
    55                 prepareStatement = connection.prepareStatement(sql);
    56                 prepareStatement.setString(1,cityNo);
    57             }
    58             else if(provinceNo != null && provinceNo != "")
    59             {
    60                 sql = "select code,name from city where provincecode = ?";
    61                 prepareStatement = connection.prepareStatement(sql);
    62                 prepareStatement.setString(1,provinceNo);
    63             }
    64             else
    65             {
    66                 sql = "select code,name from province";
    67                 prepareStatement = connection.prepareStatement(sql);
    68             }
    69             
    70             resultSet = prepareStatement.executeQuery();
    71             List<Address> addrList = new ArrayList<Address>();
    72             while(resultSet.next())
    73             {
    74                 Address address = new Address();
    75                 address.setAreaNo(resultSet.getString("code"));
    76                 address.setAreaName(resultSet.getString("name"));
    77                 addrList.add(address);
    78             }
    79             Gson gson = new Gson();
    80             response.getWriter().print(gson.toJson(addrList));
    81         }
    82         catch(Exception e)
    83         {
    84             e.printStackTrace();
    85         }
    86         finally
    87         {
    88             SqlHelper.close(connection, prepareStatement, resultSet);
    89         }
    90     }
    91 
    92 }

    2,展示前台

    linkage.jsp

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%
     3 String path = request.getContextPath();
     4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     5 %>
     6 
     7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     8 <html>
     9   <head>
    10     <base href="<%=basePath%>">
    11     <script src="/ajax/js/AjaxUtil.js"></script>
    12     <script>
    13         function getProvince()
    14         {
    15             sendAjaxReq("get","linkage",null,function(data)
    16             {
    17                 eval("var addrList="+data);
    18                 var province = document.getElementById("province");
    19                 for(var i = 0; i < addrList.length; i++)
    20                 {
    21                     var address = addrList[i];
    22                     province.innerHTML += "<option value="+address.areaNo+">"+address.areaName+"</option>";
    23                 }
    24             });
    25         }
    26         function getCity(provinceNo)
    27         {
    28             sendAjaxReq("get","/ajax/linkage?provinceNo="+provinceNo,null,function(data)
    29             {
    30                 eval("var addrList="+data);
    31                 var city = document.getElementById("city");
    32                 city.innerHTML="<option value='0'>---请选择---</option>";
    33                 for(var i = 0; i < addrList.length; i++)
    34                 {
    35                     var address = addrList[i];
    36                     city.innerHTML += "<option value="+address.areaNo+">"+address.areaName+"</option>";
    37                 }
    38             });    
    39         }
    40         function getArea(cityNo)
    41         {
    42             sendAjaxReq("get","/ajax/linkage?cityNo="+cityNo,null,function(data)
    43             {
    44                 eval("var addrList="+data);
    45                 var area = document.getElementById("area");
    46                 area.innerHTML="<option value='0'>---请选择---</option>";
    47                 for(var i = 0; i < addrList.length; i++)
    48                 {
    49                     var address = addrList[i];
    50                     area.innerHTML += "<option value="+address.areaNo+">"+address.areaName+"</option>";
    51                 }
    52             });    
    53         }
    54     </script>
    55   </head>
    56   
    57   <body onload="getProvince();">
    58       省:<select id="province" onchange="getCity(this.value);">
    59           <option value="0">---请选择---</option>
    60       </select>
    61       市:<select id="city" onchange="getArea(this.value);">
    62           <option value="0">---请选择---</option>
    63       </select>
    64       区:<select id="area">
    65           <option value="0">---请选择---</option>
    66       </select>
    67   </body>
    68 </html>

    开发截图

     

     

     

  • 相关阅读:
    博客园 投放 谷歌广告(google adsense) 且不被屏蔽掉
    JAVA与C#程序调用DOS命令
    redhat 5 安装apache 2.2
    解决"Windows 安装程序不允许从远程桌面连接安装"
    测试使用windows live writer的adsense coder发布文章
    解决:apache 整合redmine 启动报错 mod_passenger.so: failed to map segment from shared object: Permission denied
    企业级安全服务权限控制 Acegi安装系统介绍 Spring Framework安全系统
    解决Rails升级问题
    解决MyEclipse 7开发EXTJS 每次保存都要编译js的导致开发效率很低的问题
    解决:redmine 安装 rake db:migrate encoding: utf8
  • 原文地址:https://www.cnblogs.com/guanghe/p/5996771.html
Copyright © 2020-2023  润新知