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操作sqlserver关于时间日期读取的小小见解
Nov 29 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
May 18 PHP
php字符串分割函数explode的实例代码
Feb 07 PHP
php中\r \r\n \t的区别示例介绍
Feb 08 PHP
php输入数据统一类实例
Feb 23 PHP
ThinkPHP 3.2 版本升级了哪些内容
Mar 05 PHP
ThinkPHP表单数据智能写入create方法实例分析
Sep 27 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
PHP微信开发之有道翻译
Jun 23 PHP
php 的反射详解及示例代码
Aug 25 PHP
PHP调试及性能分析工具Xdebug详解
Feb 09 PHP
php格式文件打开的四种方法
Feb 24 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面向对象分析设计的经验原则
2008/09/20 PHP
php cookies中删除的一般赋值方法
2011/05/07 PHP
php下获取http状态的实现代码
2014/05/09 PHP
destoon官方标签大全
2014/06/20 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
Some tips of wmi scripting in jscript (1)
2007/04/03 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
Vue实现日历小插件
2019/06/26 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
python随机生成指定长度密码的方法
2015/04/04 Python
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
餐饮业员工工作决心书
2014/03/11 职场文书
应急处置方案
2014/06/16 职场文书
法人授权委托书样本
2014/09/19 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书