ajax 向 tp5 後臺傳輸數組,後臺接收數組。

此文章是在開發批量刪除功能時遇到問題總結的。

遇到的問題:

當批量刪除時,需要把多個記錄的id拼接成數組通過ajax請求到tp5控制器的方法裏。js數組的拼接和tp5的後臺接收請求中碰到無法接收全部的數組,也就是隻接收了數組中的最後一個。。。(在java開發的SSM項目中接收ajax傳遞的參數是比較簡單的)

解決思路:

在前端的ajax請求時,將要傳遞的數組進行序列化,然後在後臺接收的時候直接接收參數名即可。

前端ajax代碼:

//批量刪除 該方法我是用來調用的
//url:是請求後臺的地址,{:url('控制器名/方法名')}
//id_arr:是拼接完成的數組,批量刪除記錄的id,例如:[1,2,3,4]
              function deleteFlaseGroup(url,id_arr){
                    console.log(id_arr);
                    $.ajax({
                        url:url,
                        type: 'POST',
                        dataType: 'json',
                        traditional:true,
                        data: {
                          ids:JSON.stringify(id_arr)//數組序列化
                        },
                    }).done(function(data) {
                        console.log("後臺ajax返回:")
                        console.log(data);//打印後臺返回的數據
                        //setToast(data,'deleteFalse');
                    })
                    .fail(function(data) {
                        console.log('error');
                        console.log(data);
                        //setToast(false,'deleteFalse');
                    });
                }

tp5後臺控制器代碼:

 //批量刪除
    public function deleteAll(){
        if(request()->isAjax()){
           $datas  = $this->request->param("ids");//ids:前端ajax標記的參數名
           //var_dump($datas);
           echo $datas;//返回前端
        }else{
           $this->error("非法請求");
        }
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章