thinkphp中ajax与php响应过程详解


Posted in PHP onDecember 08, 2014

本文实例分析了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程序设计有所帮助。

PHP 相关文章推荐
PHP Socket 编程
Apr 09 PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 PHP
ThinkPHP CURD方法之order方法详解
Jun 18 PHP
php使用session二维数组实例
Nov 06 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
Laravel 5框架学习之子视图和表单复用
Apr 09 PHP
PHP邮件群发机实现代码
Feb 16 PHP
PHP创建word文档的方法(平台无关)
Mar 29 PHP
PHP快速排序quicksort实例详解
Sep 28 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
Sep 29 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 PHP
详解PHP设计模式之依赖注入模式
May 25 PHP
一款简单实用的php操作mysql数据库类
Dec 08 #PHP
php表单敏感字符过滤类
Dec 08 #PHP
php网页病毒清除类
Dec 08 #PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 #PHP
简单实用的PHP防注入类实例
Dec 05 #PHP
ThinkPHP连接数据库的方式汇总
Dec 05 #PHP
PHP生成RSS文件类实例
Dec 05 #PHP
You might like
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
生成随机字符串和验证码的类的PHP实例
2013/12/24 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python数组遍历的简单实现方法小结
2016/04/27 Python
Python实现SMTP发送邮件详细教程
2021/03/02 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
python skimage 连通性区域检测方法
2018/06/21 Python
python样条插值的实现代码
2018/12/17 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
超市后勤自我鉴定
2014/01/17 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
2014年社区学雷锋活动总结
2014/03/09 职场文书
应聘教师求职信
2014/07/19 职场文书
委托书范本
2014/09/13 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
用Python简陋模拟n阶魔方
2021/04/17 Python
Python如何利用正则表达式爬取网页信息及图片
2021/04/17 Python
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python