欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

thinkphp中ajax與php響應(yīng)過程詳解

 更新時間:2014年12月08日 09:44:50   投稿:shichen2014  
這篇文章主要介紹了thinkphp中ajax與php響應(yīng)過程,以實例形式詳細(xì)分析了ThinkPHP框架中Ajax響應(yīng)方式的處理原理及實現(xiàn)過程,非常具有實用價值,需要的朋友可以參考下

本文實例分析了thinkphp中ajax與php響應(yīng)過程。分享給大家供大家參考。具體分析如下:

一般將前臺頁面搜索結(jié)果中,不喜歡的內(nèi)容(鏈接),刪除掉,因為整個網(wǎng)站的編程框架式thinkphp,運用js中的ajax對頁面進(jìn)行響應(yīng),調(diào)用后臺php接口,實現(xiàn)前臺和后臺數(shù)據(jù)庫的同時更新.

首先我們需要做的就是在前臺頁面中添加一個文本“刪除”,可以這么添加:

復(fù)制代碼 代碼如下:
<a href="javascript:void(0);" id= "<php>echo $val[id]</php>" class="delete" >刪除</a>

上面的html代碼的意思:就是給刪除添加一個href,這個href是個js函數(shù),類似于超鏈接的作用,當(dāng)然對于我這樣的新手在剛開始的時候會有疑惑,我們平時的超鏈接不是這樣的,網(wǎng)頁中很多的javascript:void(0),那程序怎么知道用戶點擊刪除后,會響應(yīng)其真正對應(yīng)的js函數(shù)呢?別急,這就是為什么會為刪除添加id以及class這樣的標(biāo)簽,相信我把js中的代碼公布出來以后你就會明白了,代碼如下:

復(fù)制代碼 代碼如下:
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("刪除失敗");
                        }
                    }
                });
            }
});

大家看函數(shù)的頭部:jQuery(".list a.delete").click(),jQuery后面的標(biāo)簽是很重要的,這就保證了jquery很準(zhǔn)確的響應(yīng)頁面中用戶點擊的“位置”,添加的事件為click(),在click里添加響應(yīng)事件的代碼:var id = jQuery(_this).attr("id");獲取a對應(yīng)的id,因為這個id是我們刪除數(shù)據(jù)庫時用到的鏈接id,當(dāng)然這種直接明文的方式不好,在這里只是介紹整個響應(yīng)過程。調(diào)用ajax,實現(xiàn)異步的運行整個過程。我們設(shè)置了js接受的是json串,這里的方式應(yīng)該有很多種吧,我沒有去嘗試,大家要是有興趣可以自行嘗試一下。/Search/index.php/Jason/delete?這句話就是js去請求php的接口,php接口對用的代碼如下:

注意ajax在求php接口時的路徑,也就是delete函數(shù)必須放在JasonAction.class.php中,此例子是必須這樣的:

復(fù)制代碼 代碼如下:
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框架內(nèi)部配置完畢的.

var del = data.del;這句是接受php代碼返回來的json串中del這個key的value,進(jìn)而在前臺進(jìn)行頁面更新和響應(yīng).

復(fù)制代碼 代碼如下:
if(del == 1){//刪除成功 
     jQuery("#"+id).parents(".list").remove();//這句話就是后臺刪除成功后,直接在前臺對響應(yīng)的div進(jìn)行刪除,這樣性能就會很快,無需進(jìn)行后臺數(shù)據(jù)的重新提取至前臺頁面中, 
 }else{//刪除失敗 
     alert("刪除失敗"); 
}

整個響應(yīng)的過程就是這樣,至于效果優(yōu)化,是優(yōu)化和細(xì)化方面的問題,后來,身邊的同事又告訴我前臺移除響應(yīng)鏈接的另一個動態(tài)效果:

即將:

復(fù)制代碼 代碼如下:
jQuery("#"+id).parents(".list").remove();
替換為:
復(fù)制代碼 代碼如下:
jQuery("#"+id).parents(".list").slideUp("slow", function(){ 
      jQuery(this).remove(); 
});

大家不妨試試效果,很不錯的,好了,響應(yīng)過程記載完畢,只是自己的個人見解和認(rèn)知.

希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。

相關(guān)文章

最新評論