我是新來的JavaScript和jQuery。我有以下情況。我正在序列化表格的已編輯行並通過ajax將其發送到服務器。Django/Ajax:JavaScript對象格式化
我必須將原始數據(編輯前)和最終數據(編輯後的行)傳遞給服務器。
分別傳遞他們每個人的工作很好,但是當我把他們放在一起時發生了一些奇怪的事情。對於那些瞭解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']}>>
我怎樣才能做到這一點?
如何正確編碼request.POST中的數據。我有:'new_data%5B0%5D%5Bname%5D = Name&new_data%5B0%5D%5Bvalue%5D = domain_2&new_data%5B1%5D%5Bname%5D = Type&new_data%5B1%5D%5Bvalue%5D = CNAME&new_data% 5B2%5D%5Bname%5D =值及NEW_DATA%5B2%5D%5Bvalue%5D = DOMAIN_1&NEW_DATA%5B3%5D%5Bname%5D = TTL&NEW_DATA%5B3%5D%5Bvalue%5D = 500&original_data%5B0%5D%5Bname%5D =名稱&original_data% 5B0%5D%5Bvalue%5D = domain_2&original_data%5B1%5D%5Bname%5D = Type&original_data%5B1%5D%5Bvalue%5D = CNAME&...(我必須截斷數據,因爲字符限制) request.POST是訪問的正確結構 – duduklein