在開發海外置業網的過程中,發現在前臺有很多用ajax的地方,可以總結一下,在以後的開放過程中,使用到隨心應手。
- 首先講第一種,就是返回來的數據是字符串變量(不是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開始處理對應的邏輯關係然後我們會看到http協議echo 1;//把處理之後的結果給輸出來
這個迴應 的內容 賦值給data然後前臺根據data的值 來做出相對應的判斷
注意 這個時候 自己打印參數 echo $sql 或者是其他變量 也會一起賦值給data 出現很多未知情況 data的判斷 就是失去效果。
2 .就是講第二種,就是返回來的數據是json對象 目前,JSON已經成爲最流行的數據交換格式之一,各大網站的API幾乎都支持它。需要先說明的就是 json_encode($data)這個也就是把$data 按照json對象輸出http協議得到的數據就是$data['status'] = '0'; $data['msg'] = '你的密碼錯誤'; $data['data'] = '';
這個是就是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"; }
這就是一個完整的過程
php中ajax的使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.