ajax两级联动下拉框(js)
来源:互联网 发布:某娱乐网投稿页面源码 编辑:程序博客网 时间:2024/09/21 09:28
以前觉得动态的下拉框特麻烦;今天自己写了一个js版的
动态往下拉框添加:
var cnamevalue=json[i].cname;
var optionElement = document.createElement("option");
optionElement.setAttribute("value",cnamevalue);
var cnameText = document.createTextNode(cnamevalue);
optionElement.appendChild(cnameText);
cnameElement.appendChild(optionElement);
html;
<select id="specname" name="specname"> <option value="">请选择...</option> </select> <select id="cname" name="cname"> <option value="">请选择...</option> </select>
ajax:
window.onload = function(){//加载页面后 获得专业列表var xhr=ajaxFunction();xhr.onreadystatechange = function(){if(xhr.readyState==4){if(xhr.status==200){var data=xhr.responseText;var json=eval("("+data+")");for(var i=0;i<json.length;i++){ var specnamevalue=json[i].specname; var optionElement = document.createElement("option"); optionElement.setAttribute("value",specnamevalue); var specnameText = document.createTextNode(specnamevalue); optionElement.appendChild(specnameText); var specnameElement = document.getElementById("specname"); specnameElement.appendChild(optionElement); }}}}var specnaem=document.getElementById("specname").value; xhr.open("POST","./classServlet?mode=getspec",true); xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xhr.send(null); document.getElementById("specname").onchange=function(){var xhr=ajaxFunction();var specname=document.getElementById("specname").value;xhr.open("POST","./classServlet?mode=getclass",true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.send("specname="+specname);xhr.onreadystatechange = function(){if(xhr.readyState==4){if(xhr.status==200){var data=xhr.responseText;var json=eval("("+data+")");var cnameElement = document.getElementById("cname");var optionsOld = cnameElement.getElementsByTagName("option");for(var i=1;i<optionsOld.length;){//清除cnameElement.removeChild(optionsOld[i]);}for(var i=0;i<json.length;i++){ var cnamevalue=json[i].cname; var optionElement = document.createElement("option"); optionElement.setAttribute("value",cnamevalue); var cnameText = document.createTextNode(cnamevalue); optionElement.appendChild(cnameText); cnameElement.appendChild(optionElement); }}}}}
servlet:
import java.io.IOException;import java.util.ArrayList;import java.util.List;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 com.google.gson.Gson;import bpo.cl;import bpo.classbpo;import bpo.spec;/** * Servlet implementation class classServlet */@WebServlet("/classServlet")public class classServlet extends HttpServlet {private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public classServlet() { super(); // TODO Auto-generated constructor stub }/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setContentType("text/html;charset=UTF-8"); String mode=request.getParameter("mode");System.out.println(mode);classbpo cb=new classbpo();Gson gson = new Gson();String s = null;if(mode.equals("getspec")){List<spec> list=new ArrayList<spec>();try {list=cb.getspecname();s= gson.toJson(list);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}response.getWriter().println(s);}else{String specname = new String(request.getParameter("specname").getBytes("ISO-8859-1"), "utf-8");List<cl> list =new ArrayList<cl>();try {list=cb.getclassname(specname);s=gson.toJson(list);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}response.getWriter().println(s);}}/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}
0 0
- ajax两级联动下拉框(js)
- Jquery ajax 实现两级下拉菜单联动
- js+php+DB 下拉菜单两级联动
- ASP.NET两级联动下拉框
- 两级联动下拉菜单
- 两级下拉条联动方式+Ajax实现算法
- js异步下拉列表,两级联动的一个问题?
- AJAX联动下拉框
- AJAX 下拉框联动
- JS联动下拉框
- JS联动下拉框
- js联动下拉框
- JS联动下拉框
- JQuery+Ajax实现下拉框联动(省市联动)
- 四个下拉框联动 省市区法院选择 js + ajax
- 基于jQuery下拉两级联动select
- ajax实例--下拉框联动
- Ajax二级联动下拉框
- servlet getLastModified
- SOA 与 MSA(微服务架构)
- 使用Servlet处理HTTP请求
- 采用蒙特卡洛模拟方法计算欧式期权的价值--python
- MFC设置回车就是某个按钮
- ajax两级联动下拉框(js)
- 实现时间显示几天前,几小时前的方法锦集
- Python_django1.10_INSTALLAPPS
- 安装lnmp
- 什么是嵌入式?
- linux网络编程之socket(十):shutdown 与 close 函数 的区别
- 51nod 1042 数字0-9的数量(数位dp)
- 使用经验4
- 逻辑位移与算数位移的区别