gpt4 book ai didi

javascript - jQuery ajax() 上的多维数组 [key] 表示法失败

转载 作者:行者123 更新时间:2023-11-30 06:01:03 24 4
gpt4 key购买 nike

我尝试使用 array[key] 表示法动态添加然后发送多维数组数据:

var record=[];
record['main']={};
record['sub']={};
record['main']['mainId']=$("#goto").val();
record['main']['year']=$('#year').val();
record['main']['month']=$('#month').val();
record['main']['date']=$('#date').val();
record['main']['bank_account']=$('#bank_account').val();
record['main']['voucher_type']=$('#voucher_type').val();
record['main']['voucher_no']=$('#voucher_no').val();
record['main']['main_subject']=$('#main_subject').val();
record['main']['main_summary']=$('#main_summary').val();

$('[id^=sub_money]').each( function (index, Element) {
record['sub'][index]=[];
record['sub'][index]['sub_subject']=$('#sub_subject'+(index+1));
record['sub'][index]['sub_summary']=$('#sub_summary'+(index+1));
record['sub'][index]['sub_money']=$('#sub_money'+(index+1));
record['sub'][index]['sub_chequeId']=$('#sub_chequeId'+(index+1));
record['sub'][index]['sub_pyaee']=$('#sub_payee'+(index+1));
record['sub'][index]['sub_chequeDate']=$('#sub_chequeDate'+(index+1));
});

但是 .ajax() 什么都不返回:

$.ajax({
async: false,
dataType:'jason',
type: 'GET',
url: 'update_voucher.php',
data:{'record': record},
success: function(data) {
$("#message").html("Something has changed<br>"+data);
}
});

PHP 服务器代码只是回显(一个空数组):

print_r($_GET);

JSON 编码的数组适用于像这样的静态事物:

var record = {
foo: 123,
bar: 456,
rows: [
{
column1 : 'hello',
column2 : 'hola',
column3 : 'bonjour',
},
{
column1 : 'goodbye',
column2 : 'hasta luego',
column3 : 'au revoir',
},
],
test1:{
test2: {
test3: 'baz'
}
}
};

但不适用于像这样的动态的:

 var record=[]; record['sub']={};
record['sub'][index]=[];
record['sub'][index]['sub_subject']='abc';

在 jQuery 1.51、Firefox 7.01、Ubuntu Linux 10.04 LTS 上测试

最佳答案

JavaScript 中的对象允许您存储任意属性和值。

数组是一种特殊类型的对象,它应该包含数字索引的顺序数据并具有一些额外的属性,例如 lengthjoin

您将数据存储在任意命名的属性中,但您是在数组上这样做。当您将数组传递给 jQuery 时,它会发现它是一个数组,并假定您使用的是数字索引的顺序数据……因此它会忽略您添加的所有额外属性。

使用对象 {} 而不是数组 []

关于javascript - jQuery ajax() 上的多维数组 [key] 表示法失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8551467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com