導航:首頁 > 編程語言 > phpisajax

phpisajax

發布時間:2023-06-05 13:49:21

1. php怎麼接收jQuery的Ajax post過來的值

1、首先安裝配置php集成環境。以phpstudy為例。

2. php 怎麼判斷是否ajax請求

思路:在你進行ajax請求的時候,設置一個文件頭信息的變數,在php端判斷這個信息是否存在以及是否等於自己設置的值,就可以知道是否是ajax請求了。

做法:js端發送頭信息
對象.setRequestHeader("變數名","變數值");
如 xmlHttp..setRequestHeader("X_REQUESTED_WITH","XMLHttpRequest");
php端接受信息,注意此時接受的變數存在 $_SERVER['HTTP_變數名'];中,
如上面的例子則為$_SERVER['HTTP_X_REQUESTED_WITH'];
echo isset($_SERVER['HTTP_X_REQUESTED_WITH'])&&($_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest')?'it is ajax':'it is not ajax';

注釋:js和jquery中有些許不同,自己注意一下,再者變數名字不要沖突了

附加:如果這是你自己的網站,你只是自己區別一下的話,這樣就可以了,但是,它是防止不了別人盜用你的ajax數據的,因為這些都是可以模擬的,一個好的方法是設計session驗證之類的。

3. PHP如何判斷是否為AJAX請求

4. thinkphp怎樣獲取ajax請求數據

一般將前台頁面搜索結果中,不喜歡的內容(鏈接),刪除掉,因為整個網站的編程框架式thinkphp,運用js中的ajax對頁面進行響應,調用後台php介面,實現前台和後台資料庫的同時更新.
首先我們需要做的就是在前台頁面中添加一個文本「刪除」,可以這么添加:
代碼如下:

<a href="javascript:void(0);" id= "<php>echo $val[id]</php>" class="delete" >刪除</a>
上面的html代碼的意思:就是給刪除添加一個href,這個href是個js函數,類似於超鏈接的作用,當然對於我這樣的新手在剛開始的時候會有疑惑,我們平時的超鏈接不是這樣的,網頁中很多的javascript:void(0),那程序怎麼知道用戶點擊刪除後,會響應其真正對應的js函數呢?別急,這就是為什麼會為刪除添加id以及class這樣的標簽,相信我把js中的代碼公布出來以後你就會明白了,代碼如下:
jQuery(".list a.delete").click(function(){
if(confirm("你確定要刪除嗎?")){
var _this=this;
var id = jQuery(_this).attr("id");
jQuery.ajax({
url : '/Search/index.php/Jason/delete?',
data : {'id':id},
dataType : 'json',
success : function(data){
var del = data.del;
if(del == 1){//刪除成功
jQuery("#"+id).parents(".list").remove();
}else{//刪除失敗
alert("刪除失敗");
}
}
});
}
});

大家看函數的頭部:jQuery(".list a.delete").click(),jQuery後面的標簽是很重要的,這就保證了jquery很准確的響應頁面中用戶點擊的「位置」,添加的事件為click(),在click里添加響應事件的代碼:var id = jQuery(_this).attr("id");獲取a對應的id,因為這個id是我們刪除資料庫時用到的鏈接id,當然這種直接明文的方式不好,在這里只是介紹整個響應過程。調用ajax,實現非同步的運行整個過程。我們設置了js接受的是json串,這里的方式應該有很多種吧,我沒有去嘗試,大家要是有興趣可以自行嘗試一下。/Search/index.php/Jason/delete?這句話就是js去請求php的介面,php介面對用的代碼如下:
注意ajax在求php介面時的路徑,也就是delete函數必須放在JasonAction.class.php中,此例子是必須這樣的:
代碼如下:

public function delete(){
if($this->isGet()){
$userId = session("uid");//用戶登錄
if(!empty($userId)){
$a = M('***');
$id = $this->_get('id');
$result=$a->where("id=$id")->delete();//刪除
if($result > 0){
$arr = array("del"=>'1');
}else{
$arr = array("del"=>'0');
}
$json_str = json_encode($arr);
echo $json_str;//返回給js
}
}
}

相信大家對上面的代碼不會陌生吧,整個過程都是thinkphp框架內部配置完畢的.
var del = data.del;這句是接受php代碼返回來的json串中del這個key的value,進而在前台進行頁面更新和響應.

復制代碼代碼如下:
if(del == 1){//刪除成功
jQuery("#"+id).parents(".list").remove();//這句話就是後台刪除成功後,直接在前台對響應的div進行刪除,這樣性能就會很快,無需進行後台數據的重新提取至前台頁面中,
}else{//刪除失敗
alert("刪除失敗");
}
整個響應的過程就是這樣,至於效果優化,是優化和細化方面的問題,後來,身邊的同事又告訴我前台移除響應鏈接的另一個動態效果:
即將:
代碼如下:
jQuery("#"+id).parents(".list").remove();
替換為:
代碼如下:

jQuery("#"+id).parents(".list").slideUp("slow", function(){
jQuery(this).remove();
});

5. thinkphp 驗證是不是ajax提交

有兩種方式,如下:

第一種方式
PHP判斷ajax請求的原理:
在發送ajax請求的時候,我們可以通過XMLHttpRequest這個對象,創建自定義的header頭信息, 在jquery框架中,對於通過它的$.ajax, $.get, or $.post方法請求網頁內容時,它會向伺服器傳遞一個HTTP_X_REQUESTED_WITH的參數,php中就是在header一層判斷是否是ajax請求,對應的根據$_SERVER['HTTP_X_REQUESTED_WITH']判斷。
/**
* 當前請求是否ajax請求
*
* @access public
* @return bool
*/
function isAjax()
{
return isset($_SERVER['HTTP_X_REQUESTED_WITH']);
}


注意:
● 一般情況下$_SERVER['HTTP_X_REQUESTED_WITH']默認是XMLHttpRequest
● $_SERVER['HTTP_X_REQUESTED_WITH']也可以自定義創建的,使用XMLHttpRequest.setRequestHeader(name,value);參考文章:http://www.skygq.com/2011/01/04/php-check-request-from-ajax-or-normal/

第二種方式
通過前台給php傳一個type參數來判斷,type=1則是ajax,否則是普通提交。

6. thinkphp中怎麼用ajax

thinkphp中使用ajax很簡單.主要掌握的地方有三個.

第一.tp中ajax的url需要使用大U方法.比如:$.post("{:U('User/add')}")

第二.控制器中返回結果得第一種方法.$this->error('失敗','',true); 第三個參數為true.則發揮的是json數據.包含info.status.url三項.

第三.控制器中返回結果的第二種方法.$this->ajaxReturn(array('customKey1'=>'customValue1','customKey2'=>'customValue2','customKey3'=>'customValue3')).

掌握以上三點和ajax基本使用方法.那麼在tp中使用ajax也就掌握了.簡單的例子如下.偽代碼,或許有錯.

模板中:

<script>
$.post("{:U('User/add')",{uname:xiaoming,age:15},function(data){
//data接收返回數據
if(data.status==1){
alert(data.info);
location.href=data.url;
}else{
alert('錯誤');
}
});
</script>

控制器中:

publicfunctionadd(){
if(IS_AJAX){
$name=I('post.name','','trim');
$age=I('post.age','','trim');
if($name&&$age){
//插入數據
$this->success('添加成功',U('User/index'),true);
}else{
$this->ajaxReturn(array(
'status'=>0,
'info'=>'大爺,您沒輸入名字',
'url'=>U('User/add')
));
}

}else{
returnfalse;
}
}

大概就是這樣子.至於剩下的$.ajax.$.getJson等等都是一樣的道理

閱讀全文

與phpisajax相關的資料

熱點內容
單片機字型檔下載 瀏覽:183
命令行執行vs編譯 瀏覽:95
印度電影巴基斯坦女孩跑印度 瀏覽:750
反編譯文件加殼了 瀏覽:668
PDF使用版 瀏覽:211
網路設計pdf 瀏覽:921
程序員身體健康 瀏覽:845
混日子程序員35歲 瀏覽:899
winxp重啟命令 瀏覽:536
快絲傳輸命令 瀏覽:771
菲律賓電影男主發現自己家能看到樓下 瀏覽:79
有什麼app可以測試自己適合的發型 瀏覽:16
美國電影長不大的女孩殺人30多歲 瀏覽:485
ccs如何編譯程序 瀏覽:555
你最懂電影網址 瀏覽:895
5000部日本必看的電影免費 瀏覽:652
香港經典三圾電影網扯 瀏覽:180
島國主角叫邁克的電影黑人 瀏覽:105
內核模塊調用命令 瀏覽:264
晴雅集哪個平台看 瀏覽:593