php ajax 验证返回值不能获取

3 篇文章 0 订阅

总结:1是异步->async:false,2是作用域->定义全局变量。

首先异步,async:false,保证了代码执行的顺序,如果设置为异步true,

如果在参数中,将请求设置为了同步,那么从代码执行顺序上满足了代码所需的返回值,不至于出现先执行后边的程序,由于js中每个函数都会有自己的作用域,所以,产生了跨作用域的返回,导致我们上层函数不能直接接受ajax的返回值。不过定义一个全局变量问题就能解决了,因为不用再考虑作用域的问题。

<script type="text/javascript">
   var is_result = false;//全局变量
   function check_data(){
      var url = "{:U('Ajax/check_data')}";
      var admin_name = $("#admin_name").val();
      var admin_password = $("#admin_password").val();
      if(admin_name && admin_password){
         $.ajax({
            type:"POST",
            url:url,
            async:false,//保证代码执行顺序,同步
            data:{admin_name:admin_name,admin_password:admin_password},
            datatype: "json",//"xml", "html", "script", "json", "jsonp", "text".
            success:function(data){
               if(data == 1){
                  is_result = true;
               }else{
                  $("#error_msg").html('用户名或密码错误!');
                  is_result = false;
               }
            },
            error: function(){
               is_result = false;
            }
         });
      }else{
         $("#error_msg").html('用户名和密码不能为空!');
         is_result = false;
      }
      return is_result;
   }
   function show_box(id) {
    jQuery('.widget-box.visible').removeClass('visible');
    jQuery('#'+id).addClass('visible');
   }
</script>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值