Ajax实现二级联动

ajax02.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>二级联动</title>
    <base href="<%=request.getContextPath()+"/"%>">
    
    <script type="text/javascript">

          var  xhr;

          function   change(val) {

              //发送Ajax的请求

                //A、创建XHR对象
                 xhr =new  XMLHttpRequest();

                //B、和服务器建立连接
                 xhr.open("get","AjaxServlet2?val="+val,true);

                //C、执行回调函数
                 xhr.onreadystatechange=process;

                //D、发送数据
                xhr.send(null);

          }
          
          function   process() {

              if(xhr.readyState==4&&xhr.status==200){

                  //'[篮球, 足球, 乒乓球]'
                  var  text= xhr.responseText;
                  //'篮球, 足球, 乒乓球'
                 var  t2= text.substring(1,text.length-1);
                  //  ["抖音", " 快手", " YY直播"]
                 var  t3= t2.split(",");

                 var  s=document.getElementById("s");

                 //每次进入循环需要重置
                 s.innerHTML="<option>--请选择--</option>";

                 for(var  i in t3){

                     s.innerHTML+='<option>'+t3[i]+'</option>';
                 }
              }
          }
        
    </script>
    
</head>
<body>

  <select onchange="change(this.value)">
      <option>--请选择--</option>
      <option value="1">体育</option>
      <option value="2">直播</option>
      <option value="3">美食</option>
  </select>

  <select id="s">
      <option>--请选择--</option>

  </select>

</body>
</html>

AjaxServlet2.java

@WebServlet("/AjaxServlet2")
public class AjaxServlet2 extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		//解决响应中文乱码
        resp.setContentType("text/html;charset=utf-8");
		
		//接受数据
        String val = req.getParameter("val");

        List<String>   list1=new ArrayList<>();
        list1.add("篮球");
        list1.add("足球");
        list1.add("乒乓球");

        List<String>   list2=new ArrayList<>();
        list2.add("抖音");
        list2.add("快手");
        list2.add("YY直播");


        List<String>   list3=new ArrayList<>();
        list3.add("炒饼");
        list3.add("炒面");
        list3.add("抄刀削");


        Map<String,List<String>>  map =new HashMap<>();
        map.put("1",list1);
        map.put("2",list2);
        map.put("3",list3);

        //用户响应的集合
        List<String> list = map.get(val);

        resp.getWriter().print(list);


    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AloneDrifters

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值