份-城市,基于jQuery的AJAX二级联动,用Struts2整合AJAX【非数据库版】

package loaderman.provincecity;

import java.io.IOException;
import java.util.LinkedHashSet;
import java.util.Set;
import com.opensymphony.xwork2.ActionSupport;

/**
 * 控制器
 * @author AdminTC
 */
public class ProvinceCityAction extends ActionSupport{
    private String province;
    public void setProvince(String province) {
        this.province = province;
        //System.out.println("注入" + province);
    }
    //根据省份查询城市
    public String findCityByProvince() throws Exception {
        System.out.println("进来了");
        setCity = new LinkedHashSet<String>();
        if("湖南".equals(province)){
            setCity.add("长沙");
            setCity.add("株洲");
        }else if("广东".equals(province)){
            setCity.add("广州");
            setCity.add("中山");
            setCity.add("佛山");
        }
        return SUCCESS;
    }
    private Set<String> setCity;
    public Set<String> getSetCity() {
        return setCity;
    }
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

   <package name="loaderman" extends="json-default" namespace="/">

           <!-- 根据省份查询城市 -->
           <action
               name="findCityByProvinceRequest"
               class="loaderman.provincecity.ProvinceCityAction"
               method="findCityByProvince">

            <result name="success" type="json"/>

           </action>

   </package>

</struts>
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>省份-城市,基于jQuery的AJAX二级联动</title>
    <script type="text/javascript" src="js/jquery-1.8.2.js"></script>
  </head>
  <body>

    <select id="province">
        <option>选择省份</option>
        <option>湖南</option>
        <option>广东</option>
    </select>

    <select id="city">
        <option>选择城市</option>
    </select>

    <!-- 省份->城市 -->
    <script type="text/javascript">
        //定位省份下拉框,同时添时内容改变事件
        $("#province").change( function(){
            //清空原城市下拉框中的内容,除第一项外
            $("#city option:gt(0)").remove();
            //获取选中的省份
            var province = $("#province option:selected").text();
            //如果选中的不是"选择省份"

            if("选择省份"!=province){
                $.ajax( {
                    type    : "POST",
                    url     : "${pageContext.request.contextPath}/findCityByProvinceRequest?time="+new Date().getTime(),
                    data    : {"province":province},
                    success : function(backDate,textStatus,ajax){
                                //alert(backDate!=null?"收到":"为收到");
                                //alert(ajax.responseText);
                                //解析json文本
                                var array = backDate.setCity;
                                  var size = array.length;
                                  for(var i=0;i<size;i++){
                                      var city = array[i];
                                      var $option = $("<option>"+city+"</option>");
                                      $("#city").append($option);
                                  }
                              }

                } );
            }
        } );
    </script>

  </body>
</html>

原文地址:https://www.cnblogs.com/loaderman/p/10058076.html

时间: 2024-10-10 00:24:50

份-城市,基于jQuery的AJAX二级联动,用Struts2整合AJAX【非数据库版】的相关文章

基于jQuery+JSON的省市联动效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

Asp.Net下,基于Jquery的Ajax二级联动

最近做一个项目,要求实现二级联动效果.背景为:通过学院的选择,联动出专业选项.起初想直接用微软的控件实现Ajax效果,但是DropDownList控件会自动触发PostBack,在后台根本就不好控制,所以抛弃这种方案,用Jquery实现Ajax效果.直接上代码,简单直观. 1.前端页面(这里给出页面二级联动示意,分别为两个select) <select name="xsxy" id="xsxy"> <option>-- 请选择学院名称 --&

Json 基于jQuery+JSON的省市联动效果

helloweba.com 作者:月光光 时间:2012-09-12 21:57 标签: jQuery  JSON  Ajax  省市联动 省市区联动下拉效果在WEB中应用非常广泛,尤其在一些会员信息系统.电商网站最为常见.开发者一般使用Ajax实现无刷新下拉联动.本文将讲述,利用jQuery插件,通过读取JSON数据,实现无刷新动态下拉省市二(三)级联动效果. 查看演示 下载源码 HTML 首先在head中载入jquery库和cityselect插件. <script type="tex

jquery实现select二级联动

jquery实现一个简单的select二级联动菜单,代码如下 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>jQuery 二级联动</title> 6 <style> 7 .city{ 8 display: none;; 9 } 10 .city_first { 11 display: block; 12 }

基于JQuery easyui,gson的批量新增/修改和删除-servlet版

最近项目需要用到在页面进行批量操作,做了一些这方面的学习,参照网上的资料写了个小例子,记录一下: 准备 引入gson-2.6.2.jar,这里使用gson而不使用json-lib,原因是json-lib很老了,依赖的jar在后续与struts2整合时,会出现不兼容的警告.而gson很清爽. 引入jQuery EasyUI 1.4.4 文件结构: package com.tjd.study.easyui.entity; public class Bean { private String code

jQuery+php实现二级联动

php代码: public function liandong(){ $arr = Db::table("city")->where("pid=0")->select(); return view('liandong',['arr'=>$arr]); } //输出联动json public function liandong_json(){ $pid = Request::instance()->param('pid'); $arr = Db

Ajax二级联动下拉列表

客户端与服务器端采用XML进行通信. 程序中涉及到了xml文件的组装发送和解析. 服务器端 public class CityServlet extends HttpServlet { private static final String CONTENT_TYPE ="text/xml; charset=utf-8"; public CityServlet(){ super() ; } public void destroy(){ super.destroy(); } /** * 数

Ajax二级联动

1 <%-- 2 Created by IntelliJ IDEA. 3 User: x1c 4 Date: 2019-12-22 5 Time: 10:04 6 To change this template use File | Settings | File Templates. 7 --%> 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 &l

ajax实现二级联动

用js实现简单的ajax二级联动(如上图) HTML代码: 1 省份:<select id="province" onchange="getCity();" > 2 <option>请选择--</option> 3 </select> 4 城市:<select id="city"> 5 <option>请选择--</option> 6 </select>