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("非法请求");
        }
    }

ajax 向 tp5 后台传输数组,后台接收数组。_第1张图片

你可能感兴趣的:(学习笔记,PHP,jq,ajax,tp5,thinkphp,5,张小三,tp5,php,ajax)