我設法將ajax請求發送到服務器,服務器回復一個元組串列,或者它也可能是一個字典,但是在發送請求的html中,這個串列或字典有點變成了一個字串和我無法迭代或處理它。這是因為 html(data),但我不知道除 text(data) 之外的任何其他變體,但這并不能解決問題。所以,一旦我發送了那個串列或字典,我該如何處理它(比如做迭代)我正在使用 DJANGO。
我簡化了代碼,因為這很重要,假設我已經有一個字典,我把它變成了一個串列: SERVER (VIEW FUNCTION) RETURNS:
dictionary = {
"key1": "value1",
"key2": "value2"
}
lista = list(dictionary.items())
return HttpResponse(lista)
然后回到發送請求的html代碼中,這個結果并沒有保持串列的性質,而是看起來像一個字串
網頁:
...
..
datatype:'html'
}).done(function(data) {
$("#received_answer").html(data);
}); // closing ajax group
console.log(value);
}); // closing the click function
});// closing document ready
</script>
我明白了:('key1', 'value1')('key2', 'value2')
編輯:我需要將結果制成表格,所以像這樣
$("#respuesta").html("<h5>" data.heating "</h5>");
無濟于事,因為我不能用雙引號鍵入每個單元格和行,我想要我可以回圈遍歷的 Django 查詢集。
uj5u.com熱心網友回復:
正如您所注意到的, dictionary.items() 回傳元組,因此這可能不是最好的方法。
您可以使用轉換為 JSON 之類的中間步驟來傳遞此類結構
在你看來
import json
dictionary = {
"key1": "value1",
"key2": "value2"
}
json_dict = json.dumps(dictionary)
return HttpResponse(json_dict)
然后在你的 javascript 中,你會得到一個看起來更像 javascripty 的字串,你現有的代碼應該會選擇它。您還可以將字串回應決議回 js 物件并使用它來回圈它。
.done(function(data) {
///in case we need to debug, we can have a look at what is in data
console.log(data)
obj = JSON.parse( data);
tableHTML = "<table><thead><th>Header1</th><th>Header2</th></thead><tbody>"
///iterate through properties with string keys
for (const property in obj) {
tableHTML = "<tr><td>"
tableHTML = `${property}</td></td> ${obj[property]}`
tableHTML = "</td></tr>"
}
tableHTML = "</tbody></table>"
//place the tableHTML in the document
$("#respuesta").html("tableHTML);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/472062.html
