php中ajax的使用

在開發海外置業網的過程中,發現在前臺有很多用ajax的地方,可以總結一下,在以後的開放過程中,使用到隨心應手。
  1. 首先講第一種,就是返回來的數據是字符串變量(不是json對象)
  
$.post(
                    "<{$web_url}>/index.php/login/Login", {
                        'username': username,
                        'password': password,
                        'checkRember':checkRember
                    }, function (data) {
                        if(data=="0"){
                            alert("用戶名或者密碼錯誤");
                        }else if(data=="1"){
                            window.location.href = "<{$web_url}>/index.php/index";
                        }else if(data=="2"){
                           alert("請通過郵箱激活你的賬號");
                        }
                    }
            );

先說一下$.post(url,data,function(data){  });這個是$.post()函數的應用格式。
後臺php代碼
 $username = $this->getRequest()->get("username");
        $pwd = $this->getRequest()->get("password");
        $checkRember = $this->getRequest()->get("checkRember");
        $member = new Member();
        $realPassword = $member->login($username,md5($pwd));
        //用戶名 密碼 保存七天
        if($checkRember == 1){
            setcookie("username",$username,time()+7*24*3600);
            setcookie("pwd",$pwd,time()+7*24*3600);
        }
        if( $realPassword == false){
            echo 0;
        }else{
            if(!empty($realPassword["activecode"])){
                session_start();
                $_SESSION["username"]=$username;
                echo 1;
            }else{
                echo 2;
            }
        }

然後這個就是ajax的一個過程,
然後在這個期間  http協議所做的事情是什麼呢?

這個圖 說明了  在ajax過程中 對應的參數  會當做http請求的一部分發送過去  這個也就是解釋了 後臺php爲啥可以接受到參數
然後後臺php開始處理對應的邏輯關係
echo 1;//把處理之後的結果給輸出來
然後我們會看到http協議


這個迴應 的內容 賦值給data    
然後前臺根據data的值  來做出相對應的判斷

注意 這個時候  自己打印參數 echo $sql  或者是其他變量  也會一起賦值給data  出現很多未知情況  data的判斷 就是失去效果。

2 .就是講第二種,就是返回來的數據是json對象   目前,JSON已經成爲最流行的數據交換格式之一,各大網站的API幾乎都支持它。需要先說明的就是  json_encode($data)這個也就是把$data 按照json對象輸出
  $data['status'] = '0';
  $data['msg'] = '你的密碼錯誤';
  $data['data'] = '';
http協議得到的數據就是

這個是就是data接受的數據

然後在前臺
 var data = eval('(' + data + ')');
 console.log(data.status);
 if(data.status == 0){
       alert(data.msg);
  }else if(data.status == 1){
       window.location.href = "<{$web_url}>/index.php/index";
  }

這就是一個完整的過程


發佈了27 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章