ThinkPHP 和 Ajax 之间的交互

来源:互联网 发布:义乌淘宝大学学费多少 编辑:程序博客网 时间:2024/05/24 05:13

ThinkPHP 和 Ajax 之间的交互


  最近正在学习PHP,在学习过程中遇到一些问题,其中的一个问题就是ThinkPHP 和 Ajax之间的数据交换。

ajax主要功能在于:通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。也就是在页面无刷新的情况下实现数据或者表单的提交。

1. AJAX的基本使用

使用GET方法:
 $.ajax({                        type:"GET",                        url:"__URL__/deleteUser",                        data:{id:ids},                        dataType: "json",                        success:function(ss){                            alert(ss);                        }                    });
使用POST方法:
// FormData() 是传递的数据
var form = new FormData();form.append("id",id);
$.ajax({                        type:"POST",                        url:"__URL__/deleteUser",                        data:form,                        processData: false,  // 不处理数据  contentType: false,                        success:function(ss){                        alert(ss);                           // window.history.go(-1);                        },                        error:function(){                        alert("错误");                        }                    });

参数解析:

  type:表示请求的方式,post或get,默认为get。

  url:数据所要提交到的url地址。

  data:表示所要提交的数据。JSON格式(键值对)。代码中第一个id表示变量名,第二个ids表示具体的值,即第一个id变量所对应的值。

  dataType:预期服务器返回的数据类型。若不指定,jquery将自动根据http包MIME信息来智能判断(w3c抄袭,具体不懂,大概是根据MIME的类型来返回值的类型)

  success:请求成功后后调用的回调函数。

ajax请求数据还有很多参数,比如beforeSend、error等,大家若想详细了解可以上网去查。

有了这段代码,用户在执行点击等操作时就可以将数据以get的方式提交到后台。

function deleteUser(){                if(IS_GET)        {            $id=$_GET["id"];            $this->ajaxReturn($id);        }
//if(IS_POST)        //{          //  $id=$_POST["id"];           // $this->ajaxReturn($id);        //}
}

thinkPHP中具有对请求类型进行判断的封装,其中具有对几种请求类型的判断:

  IS_POST:判断是否是POST方式提交

  IS_GET:判断是否是GET方式提交

  IS_AJAX:判断是否是ajax方式提交


在后台接收数据时,首先同样进行了请求的判断。然后通过$id=$_GET["id"]得到页面提交过来的数据,然后进行数据返回。

ThinkPHP对ajax有很好的支持,系统\Think\Controller类中提供了ajaxReturn方法用于对ajax调用后返回数据给客户端,支持JSON,JSONP,XML和EVAL四种方式返回数据的类型。默认采用JSON格式返回数据。