本文目錄一覽:
- 1、二級聯動菜單,數據是從數據庫的一個表中查詢出來的,js顯示之後在顯示下一條的時候如何清空之前顯示的。
- 2、jsp二級聯動js參數回填表單的問題
- 3、js 二級聯動, 參數不同 謝謝
- 4、在線等高手指教怎麼在JSP頁面做JS二級聯動效果
- 5、js實現的二級聯動,修改時,從數據庫里讀的值給城市賦不了值
二級聯動菜單,數據是從數據庫的一個表中查詢出來的,js顯示之後在顯示下一條的時候如何清空之前顯示的。
這裡有一個多級聯動下拉select菜單
還可以自己設置默認顯示值
裡面有代碼可以參考
jsp二級聯動js參數回填表單的問題
用AJAX
基於Servlet的AJAX
這是一個很常見的UI,當用戶在第一個選擇框里選擇ZHEJIANG時,第二個選擇框要出現ZHEJIANG的城市;當用戶在第一個選擇框里選擇JIANGSU時,第二個選擇框里要出現JIANGSU的城市。
首先,我們來看配置文件web.xml,在裡面配置一個servlet,跟往常一樣:
web-app version=”2.4″
xmlns=””
xmlns:xsi=””
xsi:schemaLocation=”
”
servlet
servlet-nameSelectCityServlet/servlet-name
servlet-classcom.stephen.servlet.SelectCityServlet/servlet-class
/servlet
servlet-mapping
servlet-nameSelectCityServlet/servlet-name
url-pattern/servlet/SelectCityServlet/url-pattern
/servlet-mapping
/web-app
然後,來看我們的JSP文件:
!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
html
head
titleMyHtml.html/title
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”–
/head
script type=”text/javascript”
function getResult(stateVal) {
var url = “servlet/SelectCityServlet?state=”+stateVal;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
}else if (window.ActiveXObject) {
req = new ActiveXObject(“Microsoft.XMLHTTP”);
}
if(req){
req.open(“GET”,url, true);
req.onreadystatechange = complete;
req.send(null);
}
}
function complete(){
if (req.readyState == 4) {
if (req.status == 200) {
var city = req.responseXML.getElementsByTagName(“city”);
;
var str=new Array();
for(var i=0;icity.length;i++){
str[i]=city[i].firstChild.data;
}
(document.getElementById(“city”));
buildSelect(str,document.getElementById(“city”));
}
}
}
function buildSelect(str,sel) {
sel.options.length=0;
for(var i=0;istr.length;i++) {
sel.options[sel.options.length]=new Option(str[i],str[i])
}
}
/script
body
select name=”state” onChange=”getResult(this.value)”
option value=””Select/option
option value=”zj”ZEHJIANG/option
option value=”zs”JIANGSU/option
/select
select id=”city”
option value=””CITY/option
/select
/body
/html
第一眼看來,跟我們平常的JSP沒有兩樣。仔細一看,不同在JS裡頭。
我們首先來看第一個方法:getResult(stateVal),在這個方法里,首先是取得XmlHttpRequest;然後設置該請求的url:req.open(“GET”,url, true);接着設置請求返回值的接收方法:req.onreadystatechange = complete;該返回值的接收方法為——complete();最後是發送請求:req.send(null);
然後我們來看我們的返回值接收方法:complete(),這這個方法里,首先判斷是否正確返回,如果正確返回,用DOM對返回的XML文件進行解析。關於DOM的使用,這裡不再講述,請大家參閱相關文檔。得到city的值以後,再通過buildSelect(str,sel)方法賦值到相應的選擇框裡頭去。
最後我們來看看Servlet文件:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window – Preferences – Java – Code Style – Code Templates
*/
public class SelectCityServlet extends HttpServlet {
public SelectCityServlet() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/xml”);
response.setHeader(“Cache-Control”, “no-cache”);
String state = request.getParameter(“state”);
StringBuffer sb=new StringBuffer(“state”);
if (“zj”.equals(state)){
sb.append(“cityhangzhou/citycityhuzhou/city”);
} else if(“zs”.equals(state)){
sb.append(“citynanjing/citycityyangzhou/citycitysuzhou/city”);
}
sb.append(“/state”);
PrintWriter out=response.getWriter();
out.write(sb.toString());
out.close();
}
}
這個類也十分簡單,首先是從request里取得state參數,然後根據state參數生成相應的XML文件,最後將XML文件輸出到PrintWriter對象里。
js 二級聯動, 參數不同 謝謝
我今天寫了一個二級聯動的例子,非常簡單,你試試看:
script type=text/javascript
var ss1=[‘名稱一’,’名稱二’,’名稱三’];
var ss2=[[‘規格1.1′,’規格1.2’],
[‘規格2.1′,’規格2.2′,’規格2.3’],
[‘規格3.1′,’規格3.2′,’規格3.3′,’規格3.4’]];
document.write(‘選擇名稱:select name=select1 onChange=”chg_select2(this.selectedIndex);”‘);
document.write(‘option’,ss1.join(‘option’));
document.write(‘/selectbr’);
document.write(‘選擇規格:select name=select2’);
document.write(‘option’,ss2[0].join(‘option’));
document.write(‘/selectbr’);
function chg_select2(n){
for (i=select2.options.length;i=0;i–) select2.options[i]=null;
for (i=0;iss2[n].length;i++) select2.options[select2.options.length]=new Option(ss2[n][i],ss2[n][i]);
}
/script
在線等高手指教怎麼在JSP頁面做JS二級聯動效果
簡單的說下原理吧
第一個下拉框變動,可以調用js的onchange時間,然後清空第二個下拉框,走ajax查詢第二個下拉框的所有數據,最後拼到頁面上。
js實現的二級聯動,修改時,從數據庫里讀的值給城市賦不了值
JS聯動AJAX異步操作的數據庫,這是為了顯示相應的子類別後,選擇最大的一類。
,直接讀取數據庫不等於顯示列表。
原創文章,作者:OWWT,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/133806.html