我是 javascript 和 jquery 的新手。我有以下情况。我正在序列化表的已编辑行并通过 ajax 将其发送到服务器。
我必须将原始数据(编辑前)和最终数据(编辑行)传递给服务器。
分别通过它们每个都很好,但是当我把它们放在一起时,发生了一些奇怪的事情。对于那些了解javascript的人来说,这可能是微不足道的。
“发送代码”是:
$.ajax({
data: data,
dataType: 'json',
...
});
当我将原始行数据或编辑后的行数据获取为:
data = tr.find(':input').serializeArray();
我在 request.POST 中得到一个正常的字典,如下所示:
<QueryDict: {u'Type': [u'CNAME'], u'Name': [u'domain_2'], Ttl': [u'500'], u'Value': [u'domain_1']}>
但是当我尝试像这样获取原始数据和新数据时:
original_data = tr.find(':input').serializeArray();
new_data = tr.find(':input').serializeArray();
var data = {}
data.original_data = original_data
data.new_value = new_data
这只是行不通。我得到这样的东西:
<QueryDict: {u'new_value[1][name]': [u'Type'], u'new_value[3][name]': [u'Ttl'], u'new_value[2][value]': [u'domain_1'], u'original_data[2][name]': [u'Value'], u'new_value[2][name]': [u'Value'], u'original_data[0][name]': [u'Name'], u'original_data[3][value]': [u'300'], u'original_data[1][value]': [u'CNAME'], u'new_value[3][value]': [u'500'], u'original_data[0][value]': [u'domain_2'], u'new_value[1][value]': [u'CNAME'], u'original_data[3][name]': [u'Ttl'], u'new_value[0][name]': [u'Name'], u'original_data[2][value]': [u'domain_1'], u'original_data[1][name]': [u'Type'], u'new_value[0][value]': [u'domain_2']}>
我希望得到
<QueryDict: {'original_data': {u'Type': [u'CNAME'], u'Name': [u'domain_2'], Ttl': [u'500'], u'Value': [u'domain_1']}, 'new_value': {u'Type': [u'CNAME'], u'Name': [u'domain_2'], Ttl': [u'500'], u'Value': [u'domain_1']}>>
我怎样才能做到这一点?