本人拍黄片(PHP),我大php是世界上最好的语言,由于工作原因,学了点ajax,在这里分享给大家,当然必须也要有php提供接口数据的呀!
#html代码
<!DOCTYPE html>
<html>
<head>
<title>测试ajax请求</title>
</head>
<body>
<br/><br/><br/><br/>
<center>
phone: <input type="text" name="phone" class="phone"><br/>
name: <input type="text" name="name" class="name"><br/>
<button class="btn">点击测试</button>
</center>
</body>
<script type="text/javascript" src="jquery.js"></script>
</html>
#js代码:
$(function(){
$('.btn').click(function(){
var phone=$('.phone').val();
var name =$('.name').val();
$.ajax({
type:'POST',
url: '{:U('Login/check')}',
dateType:'JSON',
data:{
//也可以写成拼接字符串模式
'phone':phone,
'name':name,
},
/******
第二种data数据形式
data:'phone='+$(".phone").val()+"&name="+$(".name").val(),
**/
success: function(data){
//这里的data跟state是php提供接口时返回的信息
if(data.state=="y"){
alert(data.msg);
window.location.href="url"; //这里是异步请求成功的跳转地址。
}else{
alert(data.msg);
return false;
}
}
});
});
});
//第三种ajax请求:
var url = "/index.php?c=login&a=check1";
var data = {'username':username,'password':password};
$.post(url,data,function(result){
if(result.status==0){
return dialog.error(result.message);
}
},'JSON');
},
#test.php 这里我用的是thinkphp3.2版本的,有些封装好的函数我就拿来直接用了
<?php
namespace Admin\Controller;
use Think\Controller;
class LoginController extends Controller {
public function check(){
$username = $_POST['username'];
$password = $_POST['password'];
if(!trim($username)){
//这里的data是数组,和ajax信息一模一样,参数值怎么返回,这里怎么写
$data['state']=0;
$data['msg']='空';
echo json_encode($data);die();
}
}
}
或者用另一种标准的方式写接口也行:
public function check1(){
//这里是login下的check1另一个接口方式,更改ajax的url参数就可以用了。
$username= $_POST['username'];
if(!trim($username)){
$result=array('data'=>array(),'message'=>'密码不能为空','status'=>0);
exit(json_encode($result));
}
}
或者我们可以封装一个公共类接口返回信息,然后在业务逻辑下直接调用这个方法
//这里我用的是TP3.2做的例子,其实框架只是工具,不要在意这些,任何框架都可以这样写
//我在application/Common/Common下的function.php写的
function show($status,$message,$data=array()){
$result=array(
'status'=>$status,
'message'=>$message,
'data' => $data);
exit(json_encode($result));
}
//然后再业务中这样调用
public function check(){
$username = $_POST['username'];
$password = $_POST['password'];
if(!trim($username)){
//直接return show方法,然后信息直接写。
return show(0,'用户名不能为空');
}
if(!trim($password)){
return show(0,'密码不能为空');
}
}