老是这个问题怎么解决

来源:2-8 自由编程

Ctrlzhao

2019-11-23 15:25:28

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div style="text-align:center">
		<input style="width:200px" type="button" value="员工列表"  id="btn1">
		<input style="width:200px" type="button" value="职位列表"  id="btn2">
		<input style="width:200px" type="button" value="部门列表"  id="btn3">
	</div>
		
	<div id="container" style="text-align:center"></div>
		
	<script type="text/javascript">
		var list=document.getElementsByTagName("input");
		document.getElementById("btn1").onclick = function(){
			//1、创建XmlHttpRequest
			var xmlhttp;
			if(window.XMLHttpRequest){
				xmlhttp=new XMLHttpRequest();
			}else{
				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			console.log(xmlhttp);
			//2、发送Ajax请求
			xmlhttp.open("GET","/ajax/cs",true);
			xmlhttp.send();
			//3、处理服务器响应
			xmlhttp.onreadystatechange=function(){
				if(xmlhttp.readyState==4 && xmlhttp.status==200){
					var text=xmlhttp.responseText;
					var json=JSON.parse(text);//text文本转换为JSON处理对象
					var html=html+"<h2>"+json[0]+"</h2>";
					document.getElementById("container").innerHTML=html;
				}
			} 
		}
		document.getElementById("btn2").onclick = function(){
			//1、创建XmlHttpRequest
			var xmlhttp;
			if(window.XMLHttpRequest){
				xmlhttp=new XMLHttpRequest();
			}else{
				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			console.log(xmlhttp);
			//2、发送Ajax请求
			xmlhttp.open("GET","/ajax/cs",true);
			xmlhttp.send();
			//3、处理服务器响应
			xmlhttp.onreadystatechange=function(){
				if(xmlhttp.readyState==4 && xmlhttp.status==200){
					var text=xmlhttp.responseText;
					var json=JSON.parse(text);//text文本转换为JSON处理对象
					var html=html+"<h2>"+json[1]+"</h2>";
					document.getElementById("container").innerHTML=html;
				}
			} 
		}	
		document.getElementById("btn3").onclick = function(){
			//1、创建XmlHttpRequest
			var xmlhttp;
			if(window.XMLHttpRequest){
				xmlhttp=new XMLHttpRequest();
			}else{
				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			//2、发送Ajax请求
			xmlhttp.open("GET","/ajax/cs",true);
			xmlhttp.send();
			//3、处理服务器响应
			xmlhttp.onreadystatechange=function(){
				if(xmlhttp.readyState==4 && xmlhttp.status==200){
					var text=xmlhttp.responseText;
					var json=JSON.parse(text);//text文本转换为JSON处理对象
					var html=html+"<h2>"+json[2]+"</h2>";
					document.getElementById("container").innerHTML=html;
				}
			} 
		}	
	</script>
</body>

</html>
package com.imooc.ajax;

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.alibaba.fastjson.JSON;

/**
 * Servlet implementation class CompanyServlet
 */
@WebServlet("/cs")
public class EmployeeListServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public EmployeeListServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String str1 = "小红<br>小明<br>小白";
        String str2 = "职员<br>经理";
        String str3 = "人事部<br>技术部<br>无线事业部";
		List list=new ArrayList();
		list.add(str1);
		list.add(str2);
		list.add(str3);
		String json=JSON.toJSONString(list);
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().println(json);
	}

}

http://img.mukewang.com/climg/5dd8dee409711f2611150277.jpg

写回答

3回答

好帮手慕小班

2019-11-24

同学你好,更简便一点的方法,也就是说去掉这些重复内容,同学可以参考如下思路:

    将这三个按钮作为一个数组,获取到每个元素并添加事件,当单击对应元素触发事件,发送ajax请求,具体代码同学可以参考置顶问答中的内容来书写自己的对应代码  https://class.imooc.com/course/qadetail/154109

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0

好帮手慕阿满

2019-11-23

同学你好,这是因为变量html没有定义造成的,所以会报undefined,建议同学在使用前设置一下html,如:

http://img.mukewang.com/climg/5dd8f38b094c433f07990253.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0
htrlzhao
h 老师有更简单的方法吗,我这个重复代码太多
h019-11-23
共1条回复

Ctrlzhao

提问者

2019-11-23

1、怎么遍历 btn1,btn2,btn3,???

2、http://img.mukewang.com/climg/5dd8df12090384bf00000000.jpg

0

0 学习 · 9666 问题

查看课程