ThinkPHP 和 Ajax 之间的交互

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格式返回数据。



你可能感兴趣的:(计算机之路,Ajax,ThinkPHP,AJAX和PHP交互,AJAX和Think,PHP数据交换)