1. 程式人生 > >簡單的java AJAX Json 級聯顯示

簡單的java AJAX Json 級聯顯示

1.省級實體類 Province.java

import java.util.List;

public class Province {

public Province(int p_ID,String name){
this.p_ID=p_ID;
this.name=name;
}
private int p_ID;
private String name;
List<City> citys;
public int getP_ID() {
return p_ID;
}
public void setP_ID(int p_ID) {
this.p_ID = p_ID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<City> getCitys() {
return citys;
}
public void setCitys(List<City> citys) {
this.citys = citys;
}





}

2.市級實體類 City.java

public class City {

private int c_ID;
private String name;
public City(int c_ID,String name){
this.c_ID=c_ID;
this.name=name;
}
public int getC_ID() {
return c_ID;
}
public void setC_ID(int c_ID) {
this.c_ID = c_ID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}



}

3.服務端Servlet    select_citys.java

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;




public class select_citys extends HttpServlet {
List<Province> provinces=new ArrayList<Province>();
@Override
public void init() throws ServletException {


List<City> heBei_citys=new ArrayList<City>();
heBei_citys.add(new City(1, "石家莊"));
heBei_citys.add(new City(2, "保定"));
heBei_citys.add(new City(3, "唐山"));
heBei_citys.add(new City(4, "秦皇島"));
heBei_citys.add(new City(5, "邢臺"));
List<City> heNan_citys=new ArrayList<City>();
heNan_citys.add(new City(1, "鄭州"));
heNan_citys.add(new City(2, "洛陽"));
heNan_citys.add(new City(3, "開封"));
heNan_citys.add(new City(4, "新鄉"));
heNan_citys.add(new City(5, "安陽"));
heNan_citys.add(new City(6, "商丘"));
List<City> shanDong_citys=new ArrayList<City>();
shanDong_citys.add(new City(1, "濟南"));
shanDong_citys.add(new City(2, "青島"));
shanDong_citys.add(new City(3, "煙臺"));
shanDong_citys.add(new City(4, "日照"));
shanDong_citys.add(new City(5, "菏澤"));
shanDong_citys.add(new City(6, "聊城"));
shanDong_citys.add(new City(7, "淄博"));


Province heBei=new Province(1,"河北");
heBei.setCitys(heBei_citys);
Province heNan=new Province(2,"河南");
heNan.setCitys(heNan_citys);
Province shanDong=new Province(3,"山東");
shanDong.setCitys(shanDong_citys);

provinces.add(heBei);
provinces.add(heNan);
provinces.add(shanDong);
super.init();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
        System.out.println("do     doGet");
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

int pid=Integer.parseInt(request.getParameter("p_id"));
System.out.println("do     doPost    "+pid);
StringBuffer sb=new StringBuffer();
sb.append("[{\"CityId\":0,\"CityName\":\"請選擇\"}");
for(int i=0;i<provinces.size();i++){
if(pid==provinces.get(i).getP_ID()){
List<City> citys=provinces.get(i).getCitys();
for(int j=0;j<citys.size();j++){
City city=citys.get(j);
sb.append(",{\"CityId\":"+city.getC_ID()+",\"CityName\":\""+city.getName()+"\"}");
}
break;
}
}
sb.append("]");



response.setContentType("text/html;charset=UTF-8");  
        PrintWriter out = response.getWriter();  
        try {    
            out.write(sb.toString());   
        } finally {   
            out.close();  
        }  
}


}

4.前端index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">

var xmlHttpRequest;
function createXmlHttpRequest(){
if(window.ActiveXObject){//如果是IE瀏覽器
//alert("是");
return new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){ //非IE瀏覽器
//alert("非");
return new XMLHttpRequest();
}
}
//回撥函式
function callBack(){
if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
var josn = xmlHttpRequest.responseText; 
//String轉換為json格式
var resultJson  = eval("("+josn+")");
alert(resultJson.length);
var city=document.getElementById("city");
//刪除所有option節點
city.options.length=0; 
//刪除某個位置的節點    如下是刪除
//ciy.options.remove(0);

//迴圈新增option節點
for(var i=0;i<resultJson.length;i++){
//city.add(new Option("文字","值"));    //這個只能在IE中有效
       city.options.add(new Option(resultJson[i].CityName,resultJson[i].CityId)); //這個相容IE與firefox
}
alert("end");
}
}
//觸發事件
function selectCity(provinceNum){
var url="servlet/citys?p_id="+provinceNum; //這裡寫上跳轉的路徑,並把引數傳進去
xmlHttpRequest=createXmlHttpRequest();
xmlHttpRequest.open("POST",url,true);  //true是非同步請求
xmlHttpRequest.send(null);
xmlHttpRequest.onreadystatechange=callBack;//指定回撥函式
}
</script>
  </head>
  
  <body>
  &nbsp;&nbsp;靜態標記:<input type="text">
   <form action="">
   &nbsp;&nbsp;省份:
   <select id="province" onchange="selectCity(this.value)">
   <option value="0">請選擇</option>
   <option value="1">河北</option>
   <option value="2">河南</option>
   <option value="3">山東</option>
   </select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        市區:
   <select id="city">
   <option value="0">請選擇</option>
   </select>
   </form>
  </body>
</html>

相關推薦

簡單java AJAX Json 顯示

1.省級實體類 Province.java import java.util.List; public class Province {public Province(int p_ID,String name){this.p_ID=p_ID;this.name=nam

使用jQuery+ajax實現下拉列表的顯示

html部分程式碼為下拉列表新增onchange事件         <div class="form-group" style="margin-right: 0">           

Ajax 實現下拉框

級聯下拉框隨處可見,最常見的就是省市的級聯,在選擇省份後,對應的區縣的下拉選擇列表的下拉選擇內容也會發生相應改變,即所謂的級聯下拉框。這種頁面非同步重新整理,無可厚非,AJax是首選。 在做一個管理系統時,有這樣一個需求,在選擇了倉庫後,對應的倉位下拉選擇框的內容也需要改變

三、在JSP頁面對LIST物件顯示

<% String path = request.getContextPath(); request.setAttribute("path", path); String provinceJSONString = CommonService.getAllProvinceJSONString(); %&g

ajax效果,動態從資料庫獲取資料

要實現的級聯資料的效果是,諮詢方式有多種,有的有子諮詢方式,有的沒有,直接上圖圖一中選擇自選方式,例如:選擇面詢,效果如圖二,後面對應的有面詢的子諮詢方式,有的沒有子諮詢方式,如圖三,沒有子諮詢方式,後面不顯示

angularjs簡單的接收json資料並顯示

<!DOCTYPE html> <html><head><meta charset="utf-8" /><title></title><script type="text/javascript"

一個簡單ajax獲取json的例子

options pid htm inf query class turn setting lists 一、第一個 html: <div id="ruleList"></div>向div裏添加一段循環輸出的數據 js: $.ajax({

使用postgre數據庫實現樹形結構表的子-父叠代查詢,通過菜單簡單舉例

with 兼容 rep blank 增刪改 結果 關系型 mssq word 前言:開發常用的關系型數據庫MySQL,mssql,postgre,Oracle,簡單的增刪改查的SQL語句都與標準SQL兼容,這個不用講,那麽對於叠代查詢(不嚴格的叫法:遞歸查詢)每種數據庫都不

Java函數的調用

public println 模仿 incr string類型 級聯 http upper 類型 String類的方法可以連續調用: String str="abc"; String result=str.trim().toUpperCase().concat("defg"

Ajax選擇框

ready goods typeid cti ice turn 名稱 public seve Ajax級聯選擇框 級聯選擇框常用與比較負責的網頁開發,例如實現的商品添加頁面中,需要選擇商品的分類,而分類信息又有層次,例如大分類和小分類就是兩層級聯,在用戶選擇商品所屬大類時

php+jquery+ajax+json的一個最簡單實例

text serial OS .com min TP content meta 姓名 //網站 http://www.cnblogs.com/hjxcode/p/6029781.html<html><head><meta http-equiv=

ajax 2下拉框

js function getqhlx(){       var business = $("#business").val();      // business = $("#business").find("option:selec

ajax從伺服器端取到json,直接顯示json的元素,卻為undefined的問題

後臺給ajax的返回值為res ,打印出來為{“types”:"ddddd"} ,但是呼叫res.types卻是undefined。。。。。 後來自己定義個res: var j ={"jjj":"ddd"}; alert(res.jjj);卻能取到。這是怎麼回事?   解決問題:

ajax省市區

/*級聯省——》市*/ function showCity(cityGid){ var entity = new Object(); entity.gid = cityGid; if(cityGid!=""){ $("#cityGid").empty(); $.ajax

mysql 刪除 【簡單詳細】

目的:使用 mysql 完成級聯刪除     為什麼寫這篇文章呢?主要是感覺網上寫都太複雜了,什麼原理的。有時候,讀者只是想用最快的速度去解決這個問題。   1、你在建立主外來鍵的時候要加上  ON DELETE CASCADE 這個關

簡單下拉(作為工作中的一點總結~)

級聯下拉(作為工作中的一點總結~) <script> var codeArr = ["請選擇","CNY","AUD","JPY","USD","HKD","EUR","GBP"]; var nameArr = [["請選擇"],["人民幣"],

根據json資料動態生成無限(demo三層陣列迴圈,形成三級聯動)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> <style&

Ajax提高篇(7)Ajax實現簡單的下拉框聯動顯示資料

頁面中的兩個下拉列表框:<tr> <td style="width: 130px"> 所在學院:</td> <td styl

JavaJSON簡單操作

JSONArray和JSONObject 基本用法 package com.cloud.test; import net.sf.json.JSONArray; import net.sf.json.

簡單java單例模式(單擊多次,如何讓視窗只顯示一次)

1.將實現功能的建構函式設為private 2.在寫一個public的構造方法: 如下: private static AddPerson addPerson = null;  public static  synchronized AddPerson GetInstance