【发布时间】:2012-01-23 00:01:30
【问题描述】:
我尝试使用 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 上测试
【问题讨论】:
-
你的意思是 JSON 吗?我不知道 jason 是什么,我认为 jQuery 也不知道。但无论如何,我无法理解您发布的代码 sn-ps。
-
dataType:'jason',应该是JSON。我想编辑标题以将 jason 更改为 JSON,但由于这似乎是代码中的问题之一,我将其保留原样;)
标签: javascript jquery ajax arrays json