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 相关文章推荐
PHP5中MVC结构学习
Oct 09 PHP
兼容PHP5的PHP目录管理函数库
Jul 10 PHP
解析百度搜索结果link?url=参数分析 (全)
Oct 09 PHP
基于Discuz security.inc.php代码的深入分析
Jun 03 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
Nov 19 PHP
php使用Jpgraph绘制3D饼状图的方法
Jun 10 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
PHP实现一个限制实例化次数的类示例
Sep 16 PHP
laravel实现查询最后执行的一条sql语句的方法
Oct 09 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
Nov 19 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音乐采集(部分代码)
2007/02/14 PHP
Laravel 5框架学习之用户认证
2015/04/09 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
JS中的三个循环小结
2017/06/20 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
详解如何使用 vue-cli 开发多页应用
2017/12/16 Javascript
详解如何在vue项目中引入elementUI组件
2018/02/11 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
微信分享invalid signature签名错误踩过的坑
2020/04/11 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
Python实现简单截取中文字符串的方法
2015/06/15 Python
快速了解python leveldb
2018/01/18 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
Django多个app urls配置代码实例
2020/11/26 Python
幼儿园托班开学寄语
2014/01/18 职场文书
科级干部考察材料
2014/02/15 职场文书
毕业设计说明书
2014/05/07 职场文书
设计大赛策划方案
2014/06/13 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
培养联系人考察意见
2015/06/01 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
治庸问责工作总结
2015/08/11 职场文书
在K8s上部署Redis集群的方法步骤
2021/04/27 Redis
python实现简单的三子棋游戏
2022/04/28 Python