这次给大家带来ajax怎样传递数组到后台,ajax传递数组到后台的注意事项有哪些,下面就是实战案例,一起来看一下。

前言

我们在使用ajax异步的提交多选框得到需要操作的对象的id,这时我们可以把每一个id做出一个对象,之后放到一个数组中,再使用JSON.stringify()对这个数组进行json的格式化;在后台中再inputStream中解析出我们的json字符串,之后只用:

new JSONArray()得到json数组,循环解析我们想要的属性:var countsCheckBox = $("input[type='checkbox']:checked");

var booksid = [];

for(var i=0;i

//使用[]取得元素是是一个domElement元素,取值需要使用.value,

//如果使用countsCheckBox.eq(i) 则是一个Obkject元素,就可以使用val()取值

//alert(countsCheckBox[i].value);

mysendbook_id = {};

mysendbook_id['book_id'] = countsCheckBox[i].value;

booksid[i] = mysendbook_id;

}

//alert(booksid);

var confirmdel= confirm('确认要删除吗?');

if(confirmdel){

//开始请求删除

$.ajax({

url:'selectdelbooks',

data:JSON.stringify(booksid),

type:'post',

success:function(res){

alert("删除成功");

location.replace("/TheDemo/books/pageBooksShow");

}

});

}

上面的js中我们把每一个选中的id放到一个mysendbook_id的“book_id”的属性中,再把这个对象放到booksid的数组中;到发送异步请求时使用

JSON.stringify(bookid)格式化这个booksid数组,得到一个json的数组。

再看后台我们怎么接收:

一个是做一个类里面有一个list,这个list装的是只有一个属性为bookid的类,再使用注解@RequestBody加到这个形参上。但是这样比较麻烦;

还有一种是从输入流里面获取数据,使用IOUtils.toString把inputStream转为字符串,再使用new JSONArray(mybooksid);得到这个json数组

从而得到每一个json中的book_id的属性值 @RequestMapping("selectdelbooks")

public String selectdelbooks(HttpServletRequest request) throws Exception {

ServletInputStream inputStream = request.getInputStream();

String mybooksid = IOUtils.toString(inputStream);

JSONArray jsonarr = new JSONArray(mybooksid);

List book_id =new ArrayList();

for (int i=0;i

book_id.add(((JSONObject)jsonarr.get(i)).getString("book_id"));

}...

这样我们得到一个list,里面有我们选中的id值。

数据库中信息:

页面的多选:

后台得到的选择的book的id:

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

php ajax传递数组,ajax怎样传递数组到后台相关推荐

  1. ajax 入参为list_ajax传递给后台数组参数方式

    出自:http://blog.csdn.net/lingxyd_0/article/details/10428785 在项目上用到了批量删除与批量更改状态,前台使用了EasyUI的DataGrid,用 ...

  2. 前端传递多个数组以及其他参数,springboot后台如何接收

    前端传递多个数组以及其他参数,springboot后台如何接收 前端传递参数ajax代码 var arr1=["1","2","3"];va ...

  3. Go 学习笔记(10)— 数组定义、数组声明、数组初始化、访问数组、数组相等、向函数传递数组

    1. 数组定义 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. 2. 声明数组 Go 语言数组声明需要指定元素类型及元素个数,语 ...

  4. python 调用C++,传递int,char,char*,数组和多维数组

    python 调用C++,传递int,char,char*,数组和多维数组 2018年03月21日 11:19:01

  5. 一维数组和二位数组作为函数参数进行传递的方式

    数组作为参数形式进行传递其实是指针作为函数参数的一种具体表现形式, 才得以在函数中改变原来的数值,函数结束后,任然生效 普通变量作为函数参数实现是数值传递,而指针变量作为函数参数传递实现的是地址的传递 ...

  6. php数组地址,怎么实现javascript数组与php数组的地址传递

    怎么实现javascript数组与php数组的地址传递 发布时间:2020-12-10 15:31:30 来源:亿速云 阅读:56 作者:Leah 怎么实现javascript数组与php数组的地址传 ...

  7. java集合作为参数 传递的是_Java:数组和集合类作为参数传递时的差别

    最近在做项目时遇到一个List集合作为参数传递的问题,想起了以前总结的参数传递,参数传递包括值传递和引用传递,集合类的参数应该属于引用传递,脑子里突然就闪现到了数组,感觉数组也是一种特殊的集合,也应该 ...

  8. ajax php 返回值 数组,ajax 返回数组怎么解决???

    function check(){ var myphone = $("#myphone").val();//手机1 var friendphone = $("#frien ...

  9. python传递参数 调用c++ 传递vector_python调用c++传递数组的实例

    如下所示: INPUT = c_int * 4 # 实例化一个长度为2的整型数组 input = INPUT() # 为数组赋值(input这个数组是不支持迭代的) input[0] = 11 inp ...

  10. [Ajax] 如何使用Ajax传递多个复选框的值

    HTML+JavaScript代码: 1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta charset=" ...

最新文章

  1. 【camera】自动泊车-视觉车位检测相关资料汇总(论文、数据集、源代码、相关博客、演示demo)(1)
  2. 泰坦尼克号(titanic)数据集字段解释、数据导入实战
  3. UStore-自定义JDF文件格式输出
  4. C# Settings使用小结
  5. Zookeeper分布式一致性原理(七):Curator客户端
  6. springmvc学习笔记(19)-RESTful支持
  7. kubesphere3.0的安装完整文档
  8. 如何用Excel统计出各科指定分数段的人数?(亲测)
  9. 【机器学习】LR的分布式(并行化)实现
  10. 关于有序二维矩阵查找和字符串替换的两道算法题
  11. 精选| 2021年9月R新包推荐(第58期)
  12. MySQL之使用视图
  13. 阿里云中标“金关工程二期”大数据云项目,总金额8568万!(含标单)
  14. 群晖 DLNA 设置
  15. Wireshark基础知识(一)
  16. 怎样设定目标(一)——目标金字塔
  17. UVALive4987(dp+贪心)
  18. [BZOJ4565][Haoi2016]字符合并(区间状压dp)
  19. SpringBoot的个人博客管理系统(毕业论文范文)
  20. openwrt配置虚拟多wan

热门文章

  1. nian shi ti是什么鬼????
  2. mysqlclient==1.3.7对应mysql版本_MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)...
  3. 油田系统三维布局可视化解决方案
  4. bzoj4544: 椭圆上的整点
  5. JavaWeb实现登录验证码
  6. centos内核升级的两种方法
  7. Linux:Centos7升级内核
  8. 开发一个 Chrome 浏览器插件,拢共分几步?
  9. 屏幕录制软件camtasia studio 8序列号激活
  10. 代码随想录算法训练营第一天|704二分查找 27移除元素