热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JSAJAX传递List数组到后台(对象)

今天在写代码的时候,碰到的问题,百度了一下,发现原来AJAX传递List数据是可以的,之前还一直用JSON序列化࿰

今天在写代码的时候,碰到的问题,百度了一下,发现原来AJAX传递List数据是可以的,之前还一直用JSON序列化(new Array()数组设置)进行传值的。

var _list &#61; {}; //等价于 var _list&#61;new Object();for (var i &#61; 0; i <10; i&#43;&#43;) { _list["后台controller中的接收名字[" &#43; i &#43; "]"] &#61; 值; //设置对象的key&#61;>value键值对&#xff0c;即类似于a[0]&#61;0的内容塞入对象_list中&#xff0c;对于后台接收来说&#xff0c;就相当于List内容了
} $.ajax({ url:
&#39;传递的路径&#39;, data: _list, //直接传_list节可以了&#xff0c;相当于 data: { "ids[0]":1,"ids[1]":2 }这种写法dataType: "json", type: "POST", success: function (data) { alert(&#39;Ok&#39;); }
});

另外的方式 数组模式

 如果传递的数据中存在列表对象

//第一种&#xff0c;现在比较喜欢第一种&#xff0c;毕竟和后台写法类似&#xff0c;而且看起来清楚
var albumsArray &#61; [];$("#acAlbums li:not(.add)").each(function (i) {albumsArray[i] &#61; new Object();albumsArray[i].ImageUrl &#61; $(this).find("img").attr("src");albumsArray[i].Url &#61; $(this).find("img").attr("url");})
//第二种
var albumsArray2 &#61; new Array();$("#acAlbums li:not(.add)").each(function (i) { albumsArray2.push({"ImageUrl":$(this).find("img").attr("src"),
"Url":$(this).find("img").attr("url")});})$.ajax({data: {MenuListStr: JSON.stringify(eval(albumsArray))//尝试了一下&#xff0c;直接把对象数组传到后台&#xff0c;但是数据为null&#xff0c;也可能方式不对,MenuListStr2:JSON.stringify(eval(albumsArray2))//第二种方式使用Array对象&#xff0c;json化对象数据&#xff0c;当然这个数据到后台是需要反序列化的
...}
...})

 如果传递的数据中属性是对象的情况的另一种写法&#xff1a;

1 function save() {
2 var data &#61; {};
3 //规则数
4 var ruleObj &#61; $("#rule_container tbody tr");
5 ruleObj.each(function (i) {
6 var full &#61; parseFloat($(this).find("[name&#61;rule_full]").val());
7 var cash &#61; 0;
8 var isPinkage &#61; "False";
9 var sortID &#61; i &#43; 1;
10 data["CouponActivityRules[" &#43; i &#43; "].Full"] &#61; full;
11 data["CouponActivityRules[" &#43; i &#43; "].Coupon"] &#61; cash;
12 data["CouponActivityRules[" &#43; i &#43; "].IsPinkage"] &#61; isPinkage;
13 data["CouponActivityRules[" &#43; i &#43; "].SortID"] &#61; sortID;
14 //ruleArr.push({ Full: full, Coupon: cash, IsPinkage: isPinkage, SortID: sortID });
15 })
16
17 var productArr &#61; new Array();
18 for (var i &#61; 0; i ) {
19 data["CouponProducts[" &#43; i &#43; "].ProductID"] &#61; productSelectData[i].ID;
20 //productArr.push({ ProductID: productSelectData[i].ID });
21 }
22 data["Name"] &#61; $("#Name").val();
23 data["BeginTime"] &#61; $("#BeginTime").val();
24 data["EndTime"] &#61; $("#EndTime").val();
25 data["ID"] &#61; $("#ID").val()
26 $.ajax({
27 url: "/create",
28 data: data,
29 dataType: "json",
30 type: "post",
31 success: function (data) {},
32 error: function (data) {}, timeout: 15000,//超时
33 complete: function (XHR, TS) { XHR &#61; null }//AJAX请求
34 });
35 }

传参

 

List传递&#xff08;非传统请求&#xff09;&#xff0c;数组形式的传法并不被接受&#xff0c;现在只知道一种data["child[0].ID"]&#61;1的写法后台是能够正常接收数据的

1

数组传递判别

 

 

 



推荐阅读
  • Python基础知识:注释、输出和input交互
    本文介绍了Python基础知识,包括注释的使用、输出函数print的用法以及input函数的交互功能。其中涉及到字符串和整数的类型转换等内容。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
author-avatar
黑铁1988
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有