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 相关文章推荐
example1.php
Oct 09 PHP
PHP实现用户认证及管理完全源码
Mar 11 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 PHP
PHP的switch判断语句的“高级”用法详解
Oct 01 PHP
跟我学Laravel之安装Laravel
Oct 15 PHP
php中count获取多维数组长度的方法
Nov 03 PHP
PHP之sprintf函数用法详解
Nov 12 PHP
PHP也能干大事 随机函数
Apr 14 PHP
启用Csrf后POST数据时出现的400错误
Jul 05 PHP
PHP共享内存使用与信号控制实例分析
May 09 PHP
php ajax数据传输和响应方法
Aug 21 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
Oct 18 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
AM/FM收音机的安装与调试
2021/03/02 无线电
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
求PHP数组最大值,最小值的代码
2011/10/31 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
php格式化时间戳
2016/12/17 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
2010/03/18 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
详解js类型判断
2018/05/22 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
详解python中的异常和文件读写
2021/01/03 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
床上用品全球在线购物:BeddingInn
2016/12/18 全球购物
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
中医临床专业自我鉴定范文
2014/01/15 职场文书
会计电算化个人求职信范文
2014/01/24 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
小学课外阅读总结
2014/07/09 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
初中生物教学随笔
2015/08/15 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
初中政治教师教学反思
2016/02/23 职场文书