zoukankan      html  css  js  c++  java
  • 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>

    开发截图

     

     

     

  • 相关阅读:
    2014编程之美资格赛 第二题 大神和三个小伙伴
    操作系统PV操作——进程同步问题(C#实现)
    [转_管理]成功者必备的15种能力
    [技术相关]List、Dictionary转Dictionary的性能分析
    [项目管理]怎样评定软件开发成果的质量
    Visual Studio 2013 RTM 中文语言包官方下载地址发布
    IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET
    HTTP请求方式中get和post的区别
    asp.net之动态页面和静态页面的区别
    HTML语言语法大全
  • 原文地址:https://www.cnblogs.com/guanghe/p/5996771.html
Copyright © 2011-2022 走看看