ajax 下拉列表聯動的用法。javascript
ajax的定義:java
AJAX 是一種用於建立快速動態網頁的技術。ajax
經過在後臺與服務器進行少許數據交換,AJAX 能夠使網頁實現異步更新。這意味着能夠在不從新加載整個網頁的狀況下,對網頁的某部分進行更新。json
ajax效果的一個例子:數組
區域爲空的時候,維護人狀況:瀏覽器
選了一個區域後的狀況:(選 舒城縣 聯帶出來的維護人員 小劉)服務器
1、原生態的js實現app
XMLHttpRequest 是 AJAX 的基礎異步
XMLHttpRequest 對象
全部現代瀏覽器均支持 XMLHttpRequest 對象(IE5 和 IE6 使用 ActiveXObject)。函數
XMLHttpRequest 用於在後臺與服務器交換數據。這意味着能夠在不從新加載整個網頁的狀況下,對網頁的某部分進行更新。
- var xmlHttp;
-
- function createXMLHttpRequest(){
- if(window.ActiveXObject){
- xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
- }
- else if(window.XMLHttpRequest){
- xmlHttp = new XMLHttpRequest();
- }
- }
- function ajaxRequest(url,data,responseResult){
- createXMLHttpRequest();
- xmlHttp.open("POST",url,true);
- xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- xmlHttp.onreadystatechange = responseResult;
- xmlHttp.send(data);
-
- }
//前臺頁面的區域select代碼:
- </td>
- <th>區域:</th>
- <td>
- <select style="width: 152px" name="areaId" id="areaId" class="select_field" onchange="getWhmans(this.value)">
- <option value="" style="color:#999999">-請選擇-</option>
- <c:forEach items="${arealist}" var="area" >
- <option value="${area.id}">${area.areaName}</option>
- </c:forEach>
- </select><font color="red">*</font>
- </td>
//前臺維護人select頁面代碼:
- <th>維護人員:</th>
- <td>
-
- <select id="whman" style="width: 152px" class="select_field" name="whman" >
- <option value="" style="color:#999999">請選擇</option>
-
- </select><font color="red">*</font>
-
- </td>
//如下是後臺的部分代碼
- List<Whperson> customers = factoryBO.getFugBO().getWhperson(area);
- if (customers != null) {
- JSONArray jsonArray = new JSONArray();
- for (Whperson whman : customers) {
- JSONObject obj = new JSONObject();
- obj.put("id", whman.getId());
- obj.put("name", whman.getName());
- jsonArray.add(obj);
- }
- out.write(jsonArray.toString());
- } else {
- out.write("null");
- }
- out.flush();
- out.close();
- function responseCustomer(){
- if(xmlHttp.readyState == 4){
- if(xmlHttp.status == 200){
- var message=xmlHttp.responseText;
- if(message=="null"){
- document.getElementById("id").options.length=1;
- return false;
- }
- var info2 = eval(message);
- document.getElementById("whman").options.length=1;把id='id'的option下拉框先置空
- $.each(info2, function(i,n){
- document.getElementById("whman").options.add(new Option(n.gridName,n.gridId));
- });
- }
- }
- }
- function getGridByAreaId(val){
- var url="village.do?method=getGridByAreaId";
- var data="id="+val.value;
- ajaxRequest(url,data,responseCustomer);
-
- }
2、Jquery ajax的實現
- function getWhmans(obj){
- var url="bbtj.do?method=getWhman";
- $("#whman").empty();
- $("#whman").append($('<option value="">-請選擇-</option>'));
- if($(obj).val()=="")
- return;
- url+="&areaId="+$(obj).val();
- url+="&t="+(new Date()).valueOf();
-
- $.ajax({
- url:url,
- type:'POST',
- dataType:'text',
- beforeSend:function(xmlHttpRequest,status){
-
- },
- success:function(data,status){
- var d=eval(data);
- $(d).each(function(index,entity){
- $("#whman").append($('<option value="'+entity['id']+'">'+entity['name']+'</option>'));
- });
- },
- complete:function(xmlHttpRequest,status){
-
- },
- error:function(){
-
- }
- });
-
- }