zoukankan      html  css  js  c++  java
  • Ajax (Asynchronous javascript xml) 搜索框核心代码(JQuery) Ajax判断用户名存在核心代码 附:原生js的Ajax代码 其中有json的一句话解释

    前端

    <script type="text/javascript">
    $(function(){
        $("#tid").keyup(function(){
            //获取当前输入 的值
            var value=$(this).val();
            //偷偷摸摸发起请求
            var url="${pageContext.request.contextPath }/like"
            var params="name="+value;
            //先清空下方div
            $("#did").empty();
            $("#did").hide();
            if(value){
                //有输入值才发请求
                $.post(url,params,function(data){
                    
    /*                 $.each(data,function(index,element){
                        var content=element.name;
                        var div="<div onmouseover='m1(this)' onmouseout='m2(this)' onclick='m3(this)' style='text-align:left;'  >"+content+"</div>";
                        $("#did").append(div);    
                    });
                    $("#did").show() */
                    
                    $(data).each(function(index,element){
                        alert(element.name);
                        var div="<div style='text-align:left' onmouseover='m1(this)' onmouseout='m2(this)' onclick='m3(this)'>"+element.name+"</div>";
                        $("#did").append(div);
                    })
                    $("#did").show();    
                        
                    
                    
                },"json")
            }
        })
    })
    
    function m1(obj){
        //修改css样式
        $(obj).css("background-color","#ccc");
    }
    function m2(obj){
        $(obj).css("background-color","white");
    }
    function m3(obj){
        //选中  把自己添加到输入框中
        var text=$(obj).text();
        $("#tid").val(text);
        $("#did").empty();
        $("#did").hide();
    }
    
    </script>

    后端返回给前端的内容在$.post这个Ajax请求的第三个参数function(data)的data中

    data的数据交换格式是json

    json有数组[value,value ]和对象{"key":value,"key":value }两种形式 其中value可以为任意类型,所以就出现了各种千变万化的组合,解析的时候看外层 (使用json-lib jar包)

    后端

        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            try {
                // 编码
                response.setContentType("text/html;charset=utf-8");
                // 获取name参数
                String name = request.getParameter("name");
                // 调用service查询相关
                List<KeyWord> keys = new KeyWordservice().findByName(name);
                // 写回去给你
                for (KeyWord key : keys) {
                    System.out.println(key);
                }
                JSONArray key_json = JSONArray.fromObject(keys);
                System.out.println(key_json);
                response.getWriter().print(key_json.toString());
            } catch (SQLException e) {
                e.printStackTrace();
                response.getWriter().print("");
            }
        }

     Ajax判断用户名存在核心代码(使用JQuery)

     <script>
     
         //页面加载
         $(function(){
             $("#errorId").hide();
            $("#successId").hide();
             
             
             $("#username").blur(function(){
                 $("#errorId").hide();
                 $("#successId").hide();
                 //获得值
                 var username = $("#username").val();
                 
                     if(username){
                          //ajax访问服务器
                          $.get("${pageContext.request.contextPath}/CheckUserNameServlet","username="+username,function(data){
                              if(data>0){
                                  //失败
                                  $("#errorId").show();
                                  $("#successId").hide();
                              }else{
                                  //成功
                                  $("#errorId").hide();
                                  $("#successId").show();
                              }
                          });
                     }
             });
         })
     
     </script>
         <div class="form-group">
                    <label for="username" class="col-sm-2 control-label">用户名</label>
                    <div class="col-sm-6">
                      <input type="text" class="form-control" id="username" name="username" placeholder="请输入用户名">
                    </div>
                    <div class="col-sm-4">
                        <span id="successId" class="label label-success">用户名可用</span>
                        <span id="errorId" class="label label-danger">用户名不可用</span>
                    </div>
                  </div>

    附:原生js的Ajax代码

        <input type="button" onclick="sendGet()" value="请求"/> <br/>
        
        <script type="text/javascript">
            function sendGet(){
                
                //1 获得ajax引擎
                var xmlhttp=null;
                // 谷歌、火狐、IE最新浏览器
                if (window.XMLHttpRequest){
                    xmlhttp=new XMLHttpRequest();
                }else if (window.ActiveXObject){
                    //IE老版本浏览器(IE6、7、8 等)
                    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
    
                
                //2 设置回调函数
                xmlhttp.onreadystatechange = function(){
                    
                    alert(xmlhttp.readyState);
                    if(xmlhttp.readyState == 4){
                        if(xmlhttp.status == 200){
                            alert("响应数据" + xmlhttp.responseText);
                        }
                    }
                };
                //3 确定请求方式、路径及参数
                /* xmlhttp.open("GET","/2level_daan/hello?username=jack&password=1234"); */
                xmlhttp.open("POST","/2level_daan/hello");
                
                //4 设置请求编码
                xmlhttp.setRequestHeader("content-type","application/x-www-form-urlencoded");//get 不需要
    
                
                //4 发送请求
                /* xmlhttp.send(null); */
                xmlhttp.send("username=杰克&password=1234");
    
            }
        </script>
  • 相关阅读:
    Centos7 关闭防火墙
    Linux下磁盘挂载
    Sqlserver游标复习
    Redis-benchmark测试Redis性能
    将treeview控件内容导出图片
    使用redis进行消息推送
    web性能优化系列之网站瓶颈识别
    SqlServer时间格式化
    PHP二位数组/多维数组 根据某个键值排序
    VIM Taglist + ctags
  • 原文地址:https://www.cnblogs.com/qingyundian/p/8894246.html
Copyright © 2011-2022 走看看