thinkphp之Ajax提交和返回

本文介绍了一个使用jQuery的AJAX实现的登录示例,包括前端的表单提交和后端的验证逻辑。前端通过$.post方法发送登录请求,并接收服务器返回的状态及信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.$.get

 $.get("aaaa.php", { action:"get",name:"lulu" }, function(json){
 	alert(json.info);
  });



2.$.post

 $.post("aaaa.php", { action:"get",name:"lulu" }, function(json){
 	alert(json.info);
  });



3.$.ajax

$.ajax(
    {
        type : "post", 
        url : "www.xxxx.com", 
        success : function (json)
        {
            if (json.status == 1) {
                alert(json.info);
            }
        }
    });

以$.post作为一个例子:

前端代码(在js的dologin()函数用post提交,取得返回值进行判断):

<form  action="#" method="post" >	
<div >
<div style="line-height: 30px"> </div>
<div style="padding: 0px 280px";><font color="red">*</font>用户名:<input type="text" name="username" id="username" onkeydown="EnterPress(event)"  ></div><div style="margin: 7px 100px;"><img src="__PUBLIC__/Index/images/xian.png" width="650px" /></div>
input type="hidden" name="password" id="password"  value="password">
<div style="padding: 0px 292px";><font color="red">*</font>密码:<input id="pwd" type="password"  onBlur="chana()" onkeydown="EnterPress(event)" ></div>
<div style="margin: 7px 100px;"><img src="__PUBLIC__/Index/images/xian.png" width="650px" /></div>
<div style="padding: 3px 280px;"><font color="red">*</font>验证码:<input type="text" name="vcode" id="vcode" style="width:100px" onkeydown="EnterPress(event)" ><a href="javascript:void(0);" style="color:#110000" onclick="change(imagecode)" ><font size='3px'> 换一个</font></a></div>
<div style="padding: 3px 348px;"><font size="2px">请输入动画图片中的字符</font></div>
<img style="padding: 3px 348px;" src='__APP__/Index/Index/verify/' id="imagecode" onclick="change(this)" />
<div style="margin: 7px 100px;"><img src="__PUBLIC__/Index/images/xian.png" width="650px" /></div>
<div style="margin: 0px 340px;"><input type="checkbox" name="auto" value="1" /><font size="2px">自动登录</font></div>
<div style="margin: 25px 314px;" ><img name="submit"  src="__PUBLIC__/Index/images/login2.png" style="width:80px" onclick="dologin()"/><span style="white-space:pre">	</span>function change(obj){
    
<span style="white-space:pre">	</span>obj.src='__APP__/Index/Index/verify/'+Math.random();
}</div>
</div>	
</form>

<div  style="width: 900px;margin:auto;position: absolute;top:641px;left:63px;" class="buttomimage"></div> 
<script>
function dologin(){
	var username=document.getElementById("username").value;
	var password=document.getElementById("password").value;
	var vcode=document.getElementById("vcode").value;
	$.post("<{:U('Index/Index/do_login')}>", {'username':username,'password':password,'vcode':vcode}, 
	function(json){ 
		if(json.status) window.location.href="__ROOT__/index.php/Index/Index/index";
		else alert("登录失败,验证码或密码错误");
	}); 
}                                                                                                                                                         function change(obj){
    
<span style="white-space:pre">	</span>obj.src='__APP__/Index/Index/verify/'+Math.random();
}
</script>
控制层代码(用ajaxReturn返回数据):

public function do_login(){
   
	    $password=I('post.password');

		//验证用户和密码是否正确
			if(!IS_POST){
				//_404("非法访问");
				//halt()
				$this->error('非法访问',U('index','',''));
			}
			if(I('post.vcode','','md5')!=$_SESSION[C('SESSION_PREFIX')]['verify']){
				$this->error('验证码输入错误',U('Index/Index/login'));
			}
			$username=I('post.username');
			
			  $user=M('user');
			  $res=$user->where(array( 'username'=>$username,'password'=>$password))->find();
			//  $user->getLastsql();	
		  	if(is_null($res)){
				$this->ajaxReturn('', '登录失败', 0);
			}else{
		
			//如果正确写入SESSION;
			session('nameuser',$username);
			$user=M('user');
	        $data['ip']=getIP();
	        $user->where(array('username'=>$username))->save($data);
			$this->ajaxReturn('', '登录成功', 1);
		
		}
    }



注:url皆为控制层处理函数的地址,在函数可以用$this->ajaxReturn($data,$infor,$status)返回数据,在Firefox用:查看元素->控制台->网络,可查看提交的信息和返回的数据,方便调试。

参考链接:http://www.thinkphp.cn/topic/8988.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值