问题描述
我的django应用程序中有两个页面。
(这是我的第一个django应用程序,也是JavaScript的新手。)
首页-每行都有一个复选框和一个编辑按钮的表格
第二页-带保存按钮的输入屏幕
问题:我正在尝试获取第一页到第二页的行ID列表
到目前为止: 在“编辑”按钮的OnClick事件中,我收集了数组中选定行的所有ID。
我使用$ .ajax调用通过POST将这个数组发送到第二页。
$.ajax({
url: '/secondpage/',type: 'POST',headers: { "X-CSRFToken": csrftoken,'Accept': 'application/json','Content-Type': 'application/json' },data: {'idsList': JSON.stringify(selectedIds)},success: function (response) {
console.log('success');
},error: function (xhr,ajaxOptions,thrownError) {
alert("ERROR " + xhr.status + " - " + thrownError);
}
});
当我单击“编辑”按钮时,在第一页中选择了一些行后,
我在django日志中看到以下条目[13/Aug/2020 14:36:14] "POST /secondpage/ HTTP/1.1" 200 41403
但第二页无法加载。我仍然在浏览器中看到第一页。
在开发环境中。工具我将“成功”作为最后的控制台消息。
我想念什么?有人可以帮我吗?
预先感谢。
忘记在初始帖子中添加此内容:
def secondpage(request):
idsList = request.POST.getlist('idsList[]')
return render(request,"secondpage.html",{'listIds': idsList})
解决方法
您刚刚向secondpage/
发送了ajax调用。没有什么可以告诉它要加载到浏览器中的。您需要执行以下几种选择之一:
-
从POST响应中获取结果,并将该结果适当地加载到“ pageone”中
-
将用户重定向到
/secondpage/some/variable/values
,让def secondpage()
进行计算,然后呈现secondpage.html
在OP EDIT之后更新:
您没有正确使用ajax。使用ajax,您将停留在当前页面(URL)上。它熄灭并从后端(服务器)获取一些值,并更新它当前所在的页面。您正在做的是将请求发送到新视图。它会返回一个您没有做任何事情的完整网页。
您可能只想使用一种形式:
<form action="/secondpage" method="POST">
<input type="checkbox" id="vehicle2" name="vehicle2" value="Car" />
....
<input type="submit" value="go to page 2" />
</form>
然后将检查的值组合到视图的列表中。