在前端我們經常會使用到這樣一種情況,選擇乙個省,然後再選擇這個省底下的某個市,類似於這樣的先選擇乙個範圍,然後再在這個範圍內再次精確的選擇。這裡一般使用非同步重新整理,也就是頁面的區域性重新整理而不是整個頁面重新整理,因此需要使用到ajax技術。下來我以修改個人資訊的時候選擇省和市為例,說一說我是如何做的(不對的地方,希望您指正):
首先開啟修改資訊頁面(edit.jsp)時,後台將省的集合province(list集合)放在request中,前台使用el表示式迴圈輸出,形成下拉選擇框。如下**所示:
80px;"name="province" id="province" οnclick="empty()">省
"$" var="province">
"$" name="province">$
100px;" name="city" id="city1">
"city2">市
正如所看到的,一般情況下,都是使用select選擇框,下面的具體選擇則是select內部的option,因此將集合在option這裡使用el表示式迴圈集合,實現後台查詢,前台顯示。
上面只是第一步,選擇」省」,這一步是隨著頁面的開啟進行的,並無難度,上面提到的非同步重新整理是針對市來說的,也就是選擇乙個省,然後將省的資訊提交到後台,後台呼叫資料庫查詢該省下面的所有市的集合city(list集合),返回給前台,然後前台遍歷顯示。
這裡需要用到ajax**,如下所示:
$(document) .ready(
function() ,
success : function(tip)
}});
});});
function empty()
沒錯,是在ajax**中進行「市」的迴圈遍歷輸出,方法是先獲得「市」所在的select物件obj,然後使用迴圈宣告新的option物件,其有兩個引數,(txt,value),將市的集合的某乙個值賦給這個新的option,然後使用obj.options.add(option),將這個新的option新增入市的select物件,這樣就實現了前台選擇省,市隨著動態顯示的目的了。
此外,後面的empty()函式,是為了每次重新選擇省時讓上市下面的內容清空,以便於新的市顯示。上面**我寫的是每選擇乙個省(由於頁面沒有重新整理,因此edit.jsp載入的時候傳遞過來的省的集合一直有效,因此可以選擇不同的省)時就呼叫這個empty()方法,以用來清空市select下面的內容。
以上是前段**,下面我們來看後端**,這裡只說將省傳遞到後台然後後台查詢資料庫將「市」集合再傳遞給前台的這部分**。
//拿到前台傳遞來的省的資訊
string province = request.getparameter("province");
if(!province.equals("省"))
system.out.println(jsonarray);
trycatch(ioexception e)
}
Ajax區域性重新整理和全域性重新整理的區別
在非完全前後端分離專案中,前端開發只需要完成頁面的製作,並且把一些基礎的人機互動效果使用js完成即可,頁面中需要動態呈現內容的部分,都是交給後台開發工程師做資料繫結和基於伺服器進行渲染的 伺服器端渲染 優勢 1 動態展示的資料在頁面的原 中可以看見,有利於seo優化推廣 有利於搜尋引擎的收錄和抓取 ...
JQuery的Ajax請求實現區域性重新整理 小案例
請求的ajax路徑傳遞的引數 data 會到action中被乙個同樣名字的變數 附帶set get方法 接收,返回的data是乙個jquery的陣列物件,在被呼叫的action中涉及到的資料變數會物件,都會封裝到data中最終返回給頁面。案例 如圖,我要實現狀態的更改,用jquery的ajax更改完...
JQuery的Ajax請求實現區域性重新整理 小案例
請求的ajax路徑傳遞的引數 data 會到action中被乙個同樣名字的變數 附帶set get方法 接收,返回的data是乙個jquery的陣列物件,在被呼叫的action中涉及到的資料變數會物件,都會封裝到data中最終返回給頁面。案例 如圖,我要實現狀態的更改,用jquery的ajax更改完...