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数组函数
Aug 18 PHP
php读取html并截取字符串的简单代码
Nov 30 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
May 18 PHP
PHP 第三节 变量介绍
Apr 28 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
php简单截取字符串代码示例
Oct 19 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
yii2利用自带UploadedFile实现上传图片的示例
Feb 16 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
浅谈laravel aliases别名的原理
Oct 24 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 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中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
JQuery动态创建DOM、表单元素的实现代码
2011/08/09 Javascript
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
python清除指定目录内所有文件中script的方法
2015/06/30 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
Python何时应该使用Lambda函数
2019/07/02 Python
简单了解python代码优化小技巧
2019/07/08 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
python 绘制国旗的示例
2020/09/27 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
联想C++笔试题
2012/06/13 面试题
中国梦的演讲稿
2014/01/08 职场文书
主持词开场白
2014/03/17 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
2014年终个人工作总结
2014/11/07 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
Python关于OS文件目录处理的实例分享
2021/05/23 Python
Python保存并浏览用户的历史记录
2022/04/29 Python