【发布时间】:2015-03-02 18:46:50
【问题描述】:
我希望在请求中向服务器发送选中的复选框(例如,在我的情况下是 Django),然后作为响应自动下载文件?我对常见的食谱、建议或简单示例感兴趣。据我所知,由于隐私原因,Ajax 和 JS(JQuery) 通常没有解决方案。还是我误会了?
我的想法如何实现:
HTML:
<a id="btn" href="#">Download</a>
...
<input class="select-row" type="checkbox" data-row-id="{{ item.id }}"/>
JS:
$( '#btn' ).on('click', function() {
var checkedRows = [];
$( '.select-row:checked' ).each(function() {
checkedRows.push( $(this).data('row-id') );
});
$.ajax( {
type: "POST",
url: "/request/to/view/",
data: {
passed_rows: checkedRows,
},
async: false,
} ).done( function() {
console.log('The archive is downloaded.');
} )
});
【问题讨论】:
-
嗯,您可以在
change的复选框中添加一个事件,然后将浏览器重定向到下载链接。这样,在您选中复选框后将触发下载。这个想法听起来如何?如果你愿意,我可以帮你举个例子。 -
是的,非常感谢您。我用一些基本代码编辑了我的帖子,因为我可以看到这个问题的决定。想法,如果我猜对了 - 我选中了复选框,然后单击按钮,它将有关选中选项的信息发送到 django 视图,然后从视图创建自动下载,在我的情况下,使用复选框选项标识的文件进行存档。
标签: javascript jquery ajax django download