源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 129|回复: 25

[PHP编程] thinkphp中ajax与php响应过程详解

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2018-12-25 17:48:30 | 显示全部楼层 |阅读模式
这篇文章主要介绍了thinkphp中ajax与php响应过程,以实例形式详细分析了ThinkPHP框架中Ajax响应方式的处理原理及实现过程,非常具有实用价值,需要的朋友可以参考下

本文实例分析了thinkphp中ajax与php响应过程。分享给大家供大家参考。具体分析如下:

一般将前台页面搜索结果中,不喜欢的内容(链接),删除掉,因为整个网站的编程框架式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(); 
});
大家不妨试试效果,很不错的,好了,响应过程记载完毕,只是自己的个人见解和认知.

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

回复

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-4-9 13:34:23 | 显示全部楼层
啪啪啪生怕PSP怕
回复 支持 反对

使用道具 举报

7

主题

2万

回帖

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2023-7-2 20:28:13 | 显示全部楼层
哈哈哈哈哈哈哈
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-8-10 10:48:31 | 显示全部楼层
啦啦啦啦啦德玛西亚
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-10-18 23:36:23 | 显示全部楼层
额风风风微风微风违法
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-11-17 05:53:19 | 显示全部楼层
建军节建军节建军节建军节
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-12-6 06:05:23 | 显示全部楼层
谢谢分享,先下来用用
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

194

积分

注册会员

Rank: 2

积分
194
发表于 2024-4-1 13:20:16 | 显示全部楼层
啦啦啦啦啦啦哈哈哈
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-6-8 05:07:54 | 显示全部楼层
dfdsafdsfdsfdsf
回复 支持 反对

使用道具 举报

8

主题

2万

回帖

52

积分

注册会员

Rank: 2

积分
52
发表于 2024-6-29 21:08:30 | 显示全部楼层
撒房产税陈飞飞
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2025-2-8 12:28 , Processed in 0.156190 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表