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+APACHE实现用户论证的方法
Oct 09 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
Sep 29 PHP
PHP学习笔记之三 数据库基本操作
Jan 17 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
Yii把CGridView文本框换成下拉框的方法
Dec 03 PHP
php连接与操作PostgreSQL数据库的方法
Dec 25 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 PHP
PHP使用逆波兰式计算工资的方法
Jul 29 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
Jun 22 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
Oct 17 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
基于文本的搜索
2006/10/09 PHP
PHP session有效期问题
2009/04/26 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
php使用Jpgraph创建折线图效果示例
2017/02/15 PHP
jQuery autocomplate 自扩展插件、自动完成示例代码
2011/03/28 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
JS使用parseInt解析数字实现求和的方法
2015/08/05 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
深入理解Node module模块
2018/03/26 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
小程序实现授权登陆的解决方案
2018/12/02 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
轻松理解Python 中的 descriptor
2017/09/15 Python
python音频处理用到的操作的示例代码
2017/10/27 Python
Django model序列化为json的方法示例
2018/10/16 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python每天定时运行某程序代码
2019/08/16 Python
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
八年级音乐教学反思
2014/01/09 职场文书
2014年科协工作总结
2014/12/09 职场文书
初中团支书竞选稿
2015/11/21 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技