gpt4 book ai didi

jquery - 如何从通过 ajax 调用接收到的 json 数组动态生成 html 列表?

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:09 26 4
gpt4 key购买 nike

我是一名 Django 新手,正在尝试构建一个允许用户将轨道添加到播放列表的应用程序。我使用 session 在 View 中生成一个轨道 ID 字符串列表,并使用序列化数组返回一个 http 响应。问题是尝试遍历模板中的数组以构建有序列表的格式不正确。它显示为 python 列表而不是预期的项目符号 html 列表。

任何帮助将不胜感激!

分区

<!DOCTYPE html>

<div id="playlist">
<ol>
{% for track in playlist %}
<li>{{track}}</li>
{% endfor %}
</ol>
</div>
</html>

javascript

<script type="text/javascript">
$(document).on('submit', '.track_form', function() {
var $form = $(this);
$.ajax({
url: $form.attr('action'),
data: $form.serialize(),
type: $form.attr('method'),
success: function (data) {

$("#playlist").html(data);
},
error: function(data) {
console.log('There was a problem');
}
});
return false;
});
</script>

View

def artistpage(request):
if request.method == 'POST':
session_playlist = request.session.get('session_playlist', [])
tname = str(request.POST.get('track_name'))
session_playlist.append(tname)
request.session['session_playlist'] = session_playlist

return HttpResponse(json.dumps(session_playlist))

最佳答案

由于您正在使用 ajax 调用来发出请求,因此您需要在 javascript 代码中创建 html 列表。在这种情况下,Django 模板将不起作用。一旦您的 ajax 调用返回成功,您就可以像这样创建列表 html。

<script type="text/javascript">
$(document).on('submit', '.track_form', function() {
var $form = $(this);
$.ajax({
url: $form.attr('action'),
data: $form.serialize(),
type: $form.attr('method'),
success: function (data) {
var list_html = "<ol>";
for( var i=0; i <data.length; i++) {
list_html += "<li>" + data[i] + "</li>";
}
list_html += "</ol>"
$("#playlist").html(list_html);
},
error: function(data) {
console.log('There was a problem');
}
});
return false;
});

您的 html 应如下所示。

<!DOCTYPE html>
<div id="playlist">
</div>
</html>

所以你的 View 应该看起来像这样。

def artistpage(request):
if request.method == 'POST':
session_playlist = request.session.get('session_playlist', [])
tname = str(request.POST.get('track_name'))
session_playlist.append(tname)
request.session['session_playlist'] = session_playlist

return HttpResponse(json.dumps(session_playlist), content_type="application/json")

关于jquery - 如何从通过 ajax 调用接收到的 json 数组动态生成 html 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45403299/

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