1. 程式人生 > >thinkphp框架中ajax向控制器傳遞引數陣列

thinkphp框架中ajax向控制器傳遞引數陣列

當需要使用ajax將多個數據傳送到後臺時,可以使用一個數組收集所有要傳送的陣列,然後將這個陣列作為引數傳送到後臺處理

這裡以使用者登入系統的驗證為例

1、JS部分

            var user_name=$("#username").val();
            var user_pwd=$("#password").val();
            var login_info=new Array(2);//定義陣列
            login_info[0]=user_name;
            login_info[1]=user_pwd;
            $.ajax({
                url:'http://www.xxx.com/login_info/' + login_info,//提交訪問的URL,地址字尾不要加html
                type:'GET',
                dataType:'text',
                timeout:1000,
                error:function(){
                    alert('操作頻繁,請稍後再試!');
                },
                success:function(data){
                    var return_info=eval("("+data+")");
                    var result=Number(return_info);
                    if(result>0){
                        location.href="http://www.zxzxzx.com";
                    }
                    else{
                        alert("使用者名稱或密碼錯誤!");
                    }
                }
            })

2、php部分
注意:ajax傳遞過來的陣列資訊會被解析成字串,每個資料項之間用“,”分隔,因此可以按照“,”對字串分割成陣列
        $user=M('User');
        include"session.php";
        session_start();
        if(IS_AJAX){
            $login_info=$_GET['login_info'];//獲取ajax傳送的資料
            $login_info_array=explode(",",$login_info);//對字串進行分割
            $user_name=$login_info_array[0];
            $user_pwd=$login_info_array[1];
            $condition['user_name']=$user_name;
            $condition['user_pwd']=$user_pwd;
            $check=$user->where($condition)->count();//資料庫資料查詢
            if($check>0){
                $_SESSION["user"]=$check;
            }
            $this->ajaxReturn($check);//將結果返回給前臺
        }