thinkphp中ajax與php響應(yīng)過(guò)程詳解
本文實(shí)例分析了thinkphp中ajax與php響應(yīng)過(guò)程。分享給大家供大家參考。具體分析如下:
一般將前臺(tái)頁(yè)面搜索結(jié)果中,不喜歡的內(nèi)容(鏈接),刪除掉,因?yàn)檎麄€(gè)網(wǎng)站的編程框架式thinkphp,運(yùn)用js中的ajax對(duì)頁(yè)面進(jìn)行響應(yīng),調(diào)用后臺(tái)php接口,實(shí)現(xiàn)前臺(tái)和后臺(tái)數(shù)據(jù)庫(kù)的同時(shí)更新.
首先我們需要做的就是在前臺(tái)頁(yè)面中添加一個(gè)文本“刪除”,可以這么添加:
上面的html代碼的意思:就是給刪除添加一個(gè)href,這個(gè)href是個(gè)js函數(shù),類(lèi)似于超鏈接的作用,當(dāng)然對(duì)于我這樣的新手在剛開(kāi)始的時(shí)候會(huì)有疑惑,我們平時(shí)的超鏈接不是這樣的,網(wǎng)頁(yè)中很多的javascript:void(0),那程序怎么知道用戶(hù)點(diǎn)擊刪除后,會(huì)響應(yīng)其真正對(duì)應(yīng)的js函數(shù)呢?別急,這就是為什么會(huì)為刪除添加id以及class這樣的標(biāo)簽,相信我把js中的代碼公布出來(lái)以后你就會(huì)明白了,代碼如下:
if(confirm("你確定要?jiǎng)h除嗎?")){
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("刪除失敗");
}
}
});
}
});
大家看函數(shù)的頭部:jQuery(".list a.delete").click(),jQuery后面的標(biāo)簽是很重要的,這就保證了jquery很準(zhǔn)確的響應(yīng)頁(yè)面中用戶(hù)點(diǎn)擊的“位置”,添加的事件為click(),在click里添加響應(yīng)事件的代碼:var id = jQuery(_this).attr("id");獲取a對(duì)應(yīng)的id,因?yàn)檫@個(gè)id是我們刪除數(shù)據(jù)庫(kù)時(shí)用到的鏈接id,當(dāng)然這種直接明文的方式不好,在這里只是介紹整個(gè)響應(yīng)過(guò)程。調(diào)用ajax,實(shí)現(xiàn)異步的運(yùn)行整個(gè)過(guò)程。我們?cè)O(shè)置了js接受的是json串,這里的方式應(yīng)該有很多種吧,我沒(méi)有去嘗試,大家要是有興趣可以自行嘗試一下。/Search/index.php/Jason/delete?這句話(huà)就是js去請(qǐng)求php的接口,php接口對(duì)用的代碼如下:
注意ajax在求php接口時(shí)的路徑,也就是delete函數(shù)必須放在JasonAction.class.php中,此例子是必須這樣的:
if($this->isGet()){
$userId = session("uid");//用戶(hù)登錄
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
}
}
}
相信大家對(duì)上面的代碼不會(huì)陌生吧,整個(gè)過(guò)程都是thinkphp框架內(nèi)部配置完畢的.
var del = data.del;這句是接受php代碼返回來(lái)的json串中del這個(gè)key的value,進(jìn)而在前臺(tái)進(jìn)行頁(yè)面更新和響應(yīng).
jQuery("#"+id).parents(".list").remove();//這句話(huà)就是后臺(tái)刪除成功后,直接在前臺(tái)對(duì)響應(yīng)的div進(jìn)行刪除,這樣性能就會(huì)很快,無(wú)需進(jìn)行后臺(tái)數(shù)據(jù)的重新提取至前臺(tái)頁(yè)面中,
}else{//刪除失敗
alert("刪除失敗");
}
整個(gè)響應(yīng)的過(guò)程就是這樣,至于效果優(yōu)化,是優(yōu)化和細(xì)化方面的問(wèn)題,后來(lái),身邊的同事又告訴我前臺(tái)移除響應(yīng)鏈接的另一個(gè)動(dòng)態(tài)效果:
即將:
jQuery(this).remove();
});
大家不妨試試效果,很不錯(cuò)的,好了,響應(yīng)過(guò)程記載完畢,只是自己的個(gè)人見(jiàn)解和認(rèn)知.
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
- js每隔5分鐘執(zhí)行一次ajax請(qǐng)求的實(shí)現(xiàn)方法
- 詳解JavaScript for循環(huán)中發(fā)送AJAX請(qǐng)求問(wèn)題
- 分享JavaScript監(jiān)聽(tīng)全部Ajax請(qǐng)求事件的方法
- html+js+php一次原始的Ajax請(qǐng)求示例
- JS 攔截全局ajax請(qǐng)求實(shí)例解析
- Javascript發(fā)送AJAX請(qǐng)求實(shí)例代碼
- JS Ajax請(qǐng)求如何防止重復(fù)提交
- 實(shí)例講解使用原生JavaScript處理AJAX請(qǐng)求的方法
- php ajax數(shù)據(jù)傳輸和響應(yīng)方法
- 原生javascript的ajax請(qǐng)求及后臺(tái)PHP響應(yīng)操作示例
相關(guān)文章
PHP服務(wù)器端API原理及示例講解(接口開(kāi)發(fā))
下面小編就為大家分享一篇PHP服務(wù)器端API原理及示例講解(接口開(kāi)發(fā)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03如何用phpmyadmin設(shè)置mysql數(shù)據(jù)庫(kù)用戶(hù)的權(quán)限
發(fā)現(xiàn)有很多用戶(hù)對(duì)數(shù)據(jù)庫(kù)用戶(hù)權(quán)限的設(shè)置不太了解,下面為大家詳細(xì)講解一下如何用 phpMyAdmin 來(lái)設(shè)置數(shù)據(jù)庫(kù)用戶(hù)的權(quán)限2012-01-01laravel實(shí)現(xiàn)上傳圖片并在頁(yè)面顯示的例子
今天小編就為大家分享一篇laravel實(shí)現(xiàn)上傳圖片并在頁(yè)面顯示的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10PHP用函數(shù)嵌入網(wǎng)站訪(fǎng)問(wèn)量計(jì)數(shù)器
這篇文章主要為大家詳細(xì)介紹了PHP用函數(shù)嵌入網(wǎng)站訪(fǎng)問(wèn)量計(jì)數(shù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Laravel中簡(jiǎn)約卻不簡(jiǎn)單的Macroable宏指令詳解
這篇文章主要給大家介紹了關(guān)于Laravel中簡(jiǎn)約卻不簡(jiǎn)單的Macroable宏指令的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-07-07laravel 解決Validator使用中出現(xiàn)的問(wèn)題
今天小編就為大家分享一篇laravel 解決Validator使用中出現(xiàn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10PHP 中 DOMDocument保存xml時(shí)中文出現(xiàn)亂碼問(wèn)題的解決方案
這篇文章主要介紹了PHP 中 DOMDocument保存xml時(shí)中文出現(xiàn)亂碼問(wèn)題的解決方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09php生成縮略圖示例代碼分享(使用gd庫(kù)實(shí)現(xiàn))
分享一個(gè)利用php的GD庫(kù)生成縮略圖的例子,大家參考使用吧2014-01-01