Ajax局部刷新实现三级联动
要实现从数据库获取出数据来实现联动,可以使用ajax(Asynchronous javascript and xml (异步的javascript 和 xml))局部刷新技术。ajax不是新的编程语言,而是一种局部刷新的技术,是局部刷新技术块的标准。
优点:不需要加载整个界面,就可以与服务器交互并且更新部分数据。ajax不需要任何浏览器插件,但是需要用户允许使用javascript在浏览器上运行。
实现省份、城市、地区三级联动
1、首先在数据库创建一张MyCity的数据表并添加数据,如图所示:
2、创建MyCity实体,并创建其get()set()方法
public class MyCity implements Serializable{
private static final long serialVersionUID = 1L;
private int id ; //编号
private String name;//名称
private int status; //状态
private void MyCity() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
3、在dao层连接数据库,并创建获取省份的方法
public class CityDao {
private Connection conn = null ;
private PreparedStatement ps = null;
private ResultSet rs = null;
/**
* 获取省份
* @param id
* @return
*/
public List<MyCity> getPro(int id) {
List<MyCity> citys = new ArrayList<MyCity>();
String sql = "select * from mycity where 1=1 ";
if(id != 0){
sql += " and status = " + id ;
}else{
sql += "and status is null ";
}
conn = DBUtil.getConn();
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
MyCity mycity = new MyCity();
mycity.setId(rs.getInt("id"));
mycity.setName(rs.getString("name"));
citys.add(mycity);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtil.close(rs, ps, conn);
}
return citys;
}
}
4、创建CityServlet
public class CityServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private CityDao dao = new CityDao();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//设置为xml类型
response.setContentType("text/xml;charset=utf-8");
PrintWriter out = response.getWriter();
//如果获取的id为空,则将新定义的id赋值为0,如果不为0则将获取到的id的值赋值给定义的id
int id = null == request.getParameter("id")?0:Integer.parseInt(request.getParameter("id"));
List<MyCity> pros = dao.getPro(id);
String msg = "<Pros>";
for (int i = 0; i <pros.size(); i++) {
MyCity mycity = pros.get(i);
msg += "<MyCity>";
msg += "<id>"+mycity.getId()+"</id>";
msg += "<name>"+mycity.getName()+"</name>";
msg += "</MyCity>";
}
msg += "</Pros>";
out.print(msg);
out.flush();
out.close();
}
}
5、编写主页面(包括获取省份、城市、地区函数和创建XNLHttpRequest()引擎对象的函数及回调函数)
<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE HTML >
<html>
<head>
<title>ajax 三级联动</title>
</head>
<body onload="getPro();">
省份:<select id="pro" onchange="getCity();">
<option>请选择</option>
</select>
城市:<select id="city" onchange="getArea();">
<option>请选择</option>
</select>
地区:<select id="area" >
<option>请选择</option>
</select>
</body>
<script type="text/javascript">
var xhr = null;
//即将要改变的select列表
var selectName = "";
//创建XNLHttpRequest()引擎对象的函数
function creatXhr(){
if(xhr==null){
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
}
//获取所有省份的函数
function getPro(){
creatXhr();
xhr.open("get","CityServlet",true);
xhr.send(null);
selectName = "pro";
xhr.onreadystatechange= callback;
}
//获取所有城市的函数
function getCity(){
creatXhr();
var pro = document.getElementById("pro").value;
xhr.open("get","CityServlet?id="+pro,true);
xhr.send(null);
selectName = "city";
xhr.onreadystatechange= callback;
}
//获取所有地区的方法
function getArea(){
creatXhr();
var city = document.getElementById("city").value;
xhr.open("get","CityServlet?id="+city,true);
xhr.send(null);
selectName = "area";
xhr.onreadystatechange=callback;
}
//回调函数
function callback(){
var mydom = xhr.responseXML;
//页面显示内容
var pro = mydom.getElementsByTagName("MyCity");
var mypro = document.getElementById(selectName);
mypro.options.length=1;
for (var i = 0; i <pro.length; i++) {
var id = pro.item(i).getElementsByTagName("id")[0].textContent;
var name = pro.item(i).getElementsByTagName("name")[0].textContent;
var opt = new Option(name,id);
mypro.options.add(opt);
}
}
</script>
</html>
6、连接服务器,在浏览器显示的结果如下:
单击省份下拉列表框出现在数据库中添加的省份
[img]
[/img]
选择省份后,单击城市下拉列表框出现城市选项
[img]
[/img]
选择城市后,单击地区下拉列表框出现地区选项
[img]
[/img]
选择数据库中没有存放城市和地区的省份,则城市和地区下拉列表框中无选项
[img]
[/img]
[img]
[/img]
- 大小: 4.8 KB
- 大小: 13.1 KB
- 大小: 11.3 KB
- 大小: 13.2 KB
- 大小: 11.4 KB
- 大小: 12.6 KB
分享到:
相关推荐
本示例着重讲解如何利用Ajax实现一个城市三级联动的效果,即根据用户在一级、二级城市选择中的变化,动态地更新并展示三级城市的选项。 首先,我们要理解Ajax的核心原理:通过JavaScript异步发送HTTP请求到服务器,...
城市三级联动菜单是一种常见...总的来说,实现城市三级联动菜单涉及到前端的AJAX交互、后端的数据处理以及合理的数据库设计。通过这个过程,我们可以了解到前后端协同工作的重要性,以及如何通过异步通信提升用户体验。
本文主要讲解如何使用 Java Web 技术和 Ajax 技术实现三级联动的数据库交互。三级联动是指在一个表单中,选择一个省份,然后根据选择的省份动态加载城市的选项,最后根据选择的城市动态加载县/区的选项。这需要使用 ...
在网页开发中,"AJAX实现省市区三级联动"是一个常见的功能需求,它允许用户在选择省份时,相应的城市和区域会自动更新,无需刷新整个页面。这一功能大大提升了用户体验,尤其是在注册、地址填写等场景中。以下是关于...
在网页开发中,"AJAX jsp 省市区三级联动"是一个常见的功能,用于实现用户在选择省份时,城市和区县会根据所选省份动态加载,无需刷新整个页面。这种技术提高了用户体验,使交互更加流畅。接下来,我们将详细讨论这...
四、Ajax三级联动实现 1. HTML结构:创建HTML下拉列表,分别对应省份、城市、区县,并设置初始可见的只有一级(省份)。 2. JavaScript事件:使用jQuery库绑定事件监听,当省份选择项发生变化时,发送Ajax请求到...
在网页开发中,"Ajax+jQuery实现省市区三级联动功能"是一个常见的需求,尤其是在构建具有交互性和动态更新的用户界面时。这个功能的核心是通过Ajax技术异步获取数据,并使用jQuery库来处理DOM操作和事件监听,使得...
**Ajax 实现三级联动在 VS2003 中的应用** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新...
【标题】"利用ajax和WebService实现的无刷新三级联动源码"揭示了这个项目的核心技术,即使用Ajax和WebService来创建一个动态、无需刷新页面的三级联动效果。这是一个常见的前端与后端交互方式,用于提高用户体验,...
在网页设计中,"AJAX无刷新三级联动菜单"是一种常见的交互效果,它利用了Asynchronous JavaScript and XML(AJAX)技术,实现了用户在选择某一菜单项时,无需整个页面刷新,仅通过异步更新部分网页内容的方式,展示...
接下来,我们将探讨如何利用jQuery(一个广泛使用的JavaScript库)和AJAX实现三级联动: 1. **HTML结构**:创建三个下拉列表(select元素),分别对应省、市、区,初始时只显示省的选择项,其余根据用户选择动态...
在网页开发中,"ajax三级联动"是一种常见的交互设计,主要应用于下拉菜单或选择框,如城市选择,其中包含...通过以上知识点的掌握和实践,开发者可以有效地实现一个功能完善的ajax三级联动,为用户提供无缝的交互体验。
在这个"利用ajax和WebService实现的无刷新三级联动源码"中,我们可以深入理解如何结合这两种技术来创建高效、流畅的用户体验。 1. **Ajax(Asynchronous JavaScript and XML)**: Ajax的核心是通过JavaScript异步...
通过这样的实现,我们可以看到无刷新三级联动不仅提升了用户界面的响应速度,还充分利用了ACCESS数据库的便捷性,使得数据管理更加方便。对于开发者来说,理解这些技术和流程对于构建高效、用户友好的Web应用至关...
**AJAX三级联动**是一种常见的前端交互技术,主要用于实现页面数据的动态加载和更新,而无需刷新整个页面。在这个经典例子中,我们看到它被应用于一个省、市、地区的选择菜单,通过AJAX实现三个下拉框的联动效果。...
ASP.NET AJAX 省市县三级联动是Web开发中常见的功能,尤其在地址选择、区域划分等场景下,用户需要从省、市、县(区)的下拉列表中逐级选择。这一技术主要利用了ASP.NET AJAX框架的异步更新和页面局部刷新的能力,为...
在IT行业中,"省市区县(含全国完整数据库)Ajax无刷新三级联动"是一个常见的前端交互功能,主要用于用户选择地理位置时提供便捷的操作体验。这个功能的核心在于利用Ajax技术实现页面的局部更新,使得用户在选择省份、...
“ajax,struts2,json实现省市区三级联动源码含全国省市区数据库”这一标题揭示了这个压缩包包含的是一项使用AJAX、Struts2和JSON技术来实现的省市区三级联动功能的源代码。这项技术常用于web应用中,允许用户在选择...