# AJAX返回
當前臺發出AJAX請求到一個Controller控制器,這個控制器對AJAX請求發送過來的數據進行判斷和業務邏輯處理,最后再使用Controller中的ajax()將處理結果返回給前臺的回調函數。
在Controller的方法中,使用$this->ajax()方法返回數據給前臺,在ajax()方法中傳入一個數組變量即傳遞數據給前臺回調函數。
例如:
~~~
public function index(){
$ajaxdata = 'ok';
$this->ajax($ajaxdata);
}
~~~
<br/><br/>
#### 稍微復雜一點的ajax示例,也是最常用的方式
前臺代碼例:
~~~
<!DOCTYPE html>
<html>
<head>
<title>AJAX</title>
<!-- 引入jQuery -->
<script type="text/javascript" src="jquery-1.11.2.min.js"></script>
</head>
<body>
<input name="userid" id="userid" type="text" value="10"></input>
<button type="button" id="postbut">提交</button>
<script type="text/javascript">
//當點擊提交按鈕時觸發操作,執行click()中的function(){}匿名函數
$("#postbut").click(function(){
//先獲得需要傳遞的數據
var uid = $("#userid").val();
//使用get方式發起AJAX請求到 Index控制器下的getuser方法。
//關于$get()方法的詳細介紹請參考jQuery手冊
$.get('/index.php/Index/getuser/',{'userid': uid},function(data){
//data里存放著 Index控制器下的getuser方法 返回的處理結果數據集。
//這里的data.message就是 Index控制器下的getuser方法 中的$ajaxdata['message']的值。
alert(data.message);
},'json');
});
</script>
</body>
</html>
~~~
<br/><br/>
后臺代碼例:
~~~
class IndexController extends Controller{
public function index(){
$data["hello"] = "<h1 style=\"text-align:center;\">歡迎使用MAGPHP微框架!</h1><br/>";
$this->display($data);
}
public function getuser(){
//獲取ajax發送過來的數據
$userid = I('userid',0);
//初始化AJAX返回信息
$ajaxdata['message'] = '無';
//判斷獲取的數據
if($userid>0)
{
$ajaxdata['message'] = '用戶ID的值是:'.$userid;
}
else
{
$ajaxdata['message'] = '沒有獲得用戶ID,輸出默認值:'.$userid;
}
$this->ajax($ajaxdata);
}
}
~~~
<br/><br/>
## 判斷是否為AJAX請求
框架提供了AJAXTYPE()方法來判斷請求是否為AJAX請求。
例:
~~~
public function getuser(){
$ajaxdata = '無';
if(AJAXTYPE())
{
$ajaxdata = '這是AJAX請求';
$this->ajax($ajaxdata); //要在前臺回調函數中輸出
}
else
{
echo '不是AJAX請求';
}
}
~~~