当前位置: 首页 > 编程笔记 >

利用ajax传递数组及后台接收的方法详解

段曦
2023-03-14
本文向大家介绍利用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<countsCheckBox.length;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的属性值

<span style="font-family:SimSun;font-size: 10.5pt;"> </span><span style="font-family:KaiTi_GB2312;font-size:14px;"> @RequestMapping("selectdelbooks") 
 public String selectdelbooks(HttpServletRequest request) throws Exception { 
  ServletInputStream inputStream = request.getInputStream(); 
  String mybooksid = IOUtils.toString(inputStream); 
  JSONArray jsonarr = new JSONArray(mybooksid); 
  List<String> book_id =new ArrayList<String>(); 
  for (int i=0;i<jsonarr.length();i++){ 
   book_id.add(((JSONObject)jsonarr.get(i)).getString("book_id")); 
  }...</span> 

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

数据库中信息:


页面的多选:

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


这样拿到id的集合,那后面的操作就方便了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。

 类似资料:
  • 本文向大家介绍ajax提交数据到后台php接收(实现方法),包括了ajax提交数据到后台php接收(实现方法)的使用技巧和注意事项,需要的朋友参考一下 在网上看了很久,发现数据的利用ajax提交数据到后台其实很简单,但是很多讲解的并不清楚,对于初学者来说,很多真的是看着有点糊涂,拿来直接用,又想去了解怎么回事,其实利用ajax提交数据到后台是非常的简单的。 首先我们对上面这一串代码进行解读,当然使

  • 本文向大家介绍JS AJAX前台如何给后台类的函数传递参数,包括了JS AJAX前台如何给后台类的函数传递参数的使用技巧和注意事项,需要的朋友参考一下 将普通页面的方法公布为WebMethod,以Javascript形式访问。 1 方法要public static修饰,返回类型最好是string。 2 方法前添加[WebMethod] 特性。 3 Client端访问时要使用Post方法,和Json

  • 本文向大家介绍Golang数组的传递详解,包括了Golang数组的传递详解的使用技巧和注意事项,需要的朋友参考一下 概念介绍 数组与切片 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列。数组长度最大为2Gb,它是值类型。切片是对数组一个连续片段的引用,所以切片是一个引用类型。 按值传递和按引用传递 Go语言中函数的参数有两种传递方式,按值传递和按引用传递。Go默认使用按值传递来传递参数,

  • 本文向大家介绍Jquery之Bind方法参数传递与接收的三种方法,包括了Jquery之Bind方法参数传递与接收的三种方法的使用技巧和注意事项,需要的朋友参考一下 方法一、 方法二、 函数句柄 方法三、 函数闭包

  • 当我点击按钮时: -迭代所有tr并将其所有输入的名称收集到数组(这已经完成了) - 我还从输入和触发名称的两个文本中获取数据 - 通过ajax将所有(一个数组和两个文本)发送到asp.net.cs(不起作用)

  • 本文向大家介绍ThinkPHP中使用ajax接收json数据的方法,包括了ThinkPHP中使用ajax接收json数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ThinkPHP中使用ajax接收json数据的方法。分享给大家供大家参考。具体分析如下: 这里通过ThinkPHP+jquery实现ajax,扩展了下,写了个查询,前台代码如下: 首先需要引入jquery.js,主要