ajax&json实现二级下拉框联动,简单示例
2016-03-02 22:52
1186 查看
Test1.jsp(前台显示页面)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function createAjax()
{
var ajax = new XMLHttpRequest();
return ajax;
}
function change()
{
//shi.length=0;
//alert(shi.length);
for(var x=0;x<shi.length;)
{
shi.remove(x);
}
//alert(shi.length);
//shi.options.length=0;
var ajax = createAjax();
var province = document.getElementById("province").value;
ajax.open("get","AjaxTest1?province="+province,true);
ajax.send();
ajax.onreadystatechange=function()
{
if(ajax.readyState==4)
{
if(ajax.status==200)
{
//alert(ajax.responseText);
var jsonobj = eval("("+ajax.responseText+")");
//document.getElementById("span").innerHTML = jsonobj.name[0];
//alert(jsonobj.shi);
for(var x=0;x<jsonobj.shi.length;x++)
{
var option = document.createElement('option');
//alert(option);
option.text = jsonobj.shi[x].text;
shi.add(option,null);
}
}
}
}
}
</script>
</head>
<body>
省:
<select id="province" onchange="change()">
<option value="jiangsu">江苏省</option>
<option value="liaoning">辽宁省</option>
<option value="zhejiang">山东省</option>
</select>
市:
<select id="shi">
</select>
</body>
</html>
AjaxTest1.java(后台交互界面)
package ajax;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@WebServlet("/AjaxTest1")
public class AjaxTest1 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter pw = response.getWriter();
String province = request.getParameter("province");
JSONObject json = new JSONObject();
JSONArray jsona = new JSONArray();
JSONObject temp=null;
JSONObject temp1=null;
JSONObject temp2=null;
if("jiangsu".equals(province))
{
temp=new JSONObject();
temp.put("id", 1);
temp.put("text", "南京");
jsona.add(temp);
temp1=new JSONObject();
temp1.put("id", 2);
temp1.put("text", "南昌");
jsona.add(temp1);
temp2=new JSONObject();
temp2.put("id", 3);
temp2.put("text", "泰兴");
jsona.add(temp2);
}
else if("liaoning".equals(province))
{
temp=new JSONObject();
temp.put("id", 1);
temp.put("text", "沈阳");
jsona.add(temp);
temp1=new JSONObject();
temp1.put("id", 2);
temp1.put("text", "大连");
jsona.add(temp1);
temp2=new JSONObject();
temp2.put("id", 3);
temp2.put("text", "丹东");
jsona.add(temp2);
}
else
{
temp=new JSONObject();
temp.put("id", 1);
temp.put("text", "日照");
jsona.add(temp);
temp1=new JSONObject();
temp1.put("id", 2);
temp1.put("text", "廊坊");
jsona.add(temp1);
temp2=new JSONObject();
temp2.put("id", 3);
temp2.put("text", "烟台");
jsona.add(temp2);
}
json.put("shi", jsona);
pw.print(json);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function createAjax()
{
var ajax = new XMLHttpRequest();
return ajax;
}
function change()
{
//shi.length=0;
//alert(shi.length);
for(var x=0;x<shi.length;)
{
shi.remove(x);
}
//alert(shi.length);
//shi.options.length=0;
var ajax = createAjax();
var province = document.getElementById("province").value;
ajax.open("get","AjaxTest1?province="+province,true);
ajax.send();
ajax.onreadystatechange=function()
{
if(ajax.readyState==4)
{
if(ajax.status==200)
{
//alert(ajax.responseText);
var jsonobj = eval("("+ajax.responseText+")");
//document.getElementById("span").innerHTML = jsonobj.name[0];
//alert(jsonobj.shi);
for(var x=0;x<jsonobj.shi.length;x++)
{
var option = document.createElement('option');
//alert(option);
option.text = jsonobj.shi[x].text;
shi.add(option,null);
}
}
}
}
}
</script>
</head>
<body>
省:
<select id="province" onchange="change()">
<option value="jiangsu">江苏省</option>
<option value="liaoning">辽宁省</option>
<option value="zhejiang">山东省</option>
</select>
市:
<select id="shi">
</select>
</body>
</html>
AjaxTest1.java(后台交互界面)
package ajax;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@WebServlet("/AjaxTest1")
public class AjaxTest1 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter pw = response.getWriter();
String province = request.getParameter("province");
JSONObject json = new JSONObject();
JSONArray jsona = new JSONArray();
JSONObject temp=null;
JSONObject temp1=null;
JSONObject temp2=null;
if("jiangsu".equals(province))
{
temp=new JSONObject();
temp.put("id", 1);
temp.put("text", "南京");
jsona.add(temp);
temp1=new JSONObject();
temp1.put("id", 2);
temp1.put("text", "南昌");
jsona.add(temp1);
temp2=new JSONObject();
temp2.put("id", 3);
temp2.put("text", "泰兴");
jsona.add(temp2);
}
else if("liaoning".equals(province))
{
temp=new JSONObject();
temp.put("id", 1);
temp.put("text", "沈阳");
jsona.add(temp);
temp1=new JSONObject();
temp1.put("id", 2);
temp1.put("text", "大连");
jsona.add(temp1);
temp2=new JSONObject();
temp2.put("id", 3);
temp2.put("text", "丹东");
jsona.add(temp2);
}
else
{
temp=new JSONObject();
temp.put("id", 1);
temp.put("text", "日照");
jsona.add(temp);
temp1=new JSONObject();
temp1.put("id", 2);
temp1.put("text", "廊坊");
jsona.add(temp1);
temp2=new JSONObject();
temp2.put("id", 3);
temp2.put("text", "烟台");
jsona.add(temp2);
}
json.put("shi", jsona);
pw.print(json);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享
- 如何创建对象以及jQuery中创建对象的方式
- 数组方法汇总