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 相关文章推荐
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
php的控制语句
Oct 09 PHP
Zend Studio去除编辑器的语法警告设置方法
Oct 24 PHP
如何使用Strace调试工具
Jun 03 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
php使用GD库创建图片缩略图的方法
Jun 10 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
在PHP语言中使用JSON和将json还原成数组的方法
Jul 19 PHP
详谈php中 strtr 和 str_replace 的效率问题
May 14 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
php实现数字补零的方法总结
Sep 12 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初学者头疼问题总结
2006/10/09 PHP
PHP获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
PHP中16个高危函数整理
2019/09/19 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
javascript 文章截取部分无损html显示实现代码
2010/05/04 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
全面了解js中的script标签
2016/07/04 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
详解VUE 数组更新
2017/12/16 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
angular5 httpclient的示例实战
2018/03/12 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
微信小程序日历效果
2018/12/29 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
复习Python中的字符串知识点
2015/04/14 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
巴西在线鞋店:Shoestock
2017/10/28 全球购物
最好的商品表达自己:Cafepress
2019/09/04 全球购物
应届生会计电算化求职信
2013/10/03 职场文书
交通事故协议书范本
2014/11/18 职场文书
一文弄懂MySQL索引创建原则
2022/02/28 MySQL