如何跟踪Django的复选框和无尽的分页?

时间:2013-07-31 19:46:01

标签: forms checkbox django-endless-pagination

我是一名Django noob,其情况超出了基本文档等等。

我正在更新一个订购网页,其表格的结构如下:

  • 收集一般信息(姓名,日期等)的几个文本框等

  • 两个单独的表,用于选择(通过复选框)使用endless_pagination生成/管理的目录。每个表可以有数千条记录,因此是endless_pagination。每个表中的第一列是一个复选框,其值为= catalog.id。

  • 用户可以手动输入商品目录ID的文本框

  • 提交按钮

我不确定如何跟踪用户在两个分页表中选择的内容,因为选中不同的页面时复选框会丢失。此外,当用户在页面之间来回翻转时,需要重新检查先前检查的目录(因为未保持检查状态)。我也不确定使用哪种工具来解决这个问题。

我的想法是每当选中/取消选中复选框时,使用JavaScript(我的经验很少)更新目录ID列表,并且:   - 并将该列表附加到表单或   - 更新表单中的变量或   - 作为与表格分开的变量发送,以可能/更有意义为准。

我希望维护一个目录ID列表是可能的,因为这个表单的下一次迭代可能包含某种过滤,所以我试图设计一个不必在以后重做的解决方案。

我已经回顾了很多帖子,但我相信最接近的解决方案由于endless_pagination而变得毫无用处。

如果需要进一步澄清,请与我们联系。提前感谢任何建议。

更新

当选中复选框时,我尝试使用JavaScript将目录ID存储在数组中。当用户在分页中选择另一页时,这不起作用。页面“重新加载”时,已检查的目录ID数组将丢失。

1 个答案:

答案 0 :(得分:1)

我现在也遇到了这个问题。我通过将已检查的项目写入localStorage来处理此问题,因此它们会继续执行到第2,3页等。当您返回到第1页时,它会显示为已经检查过。然后每次加载页面时,都要查找并检查现有复选框,或创建具有适当名称和值的隐藏输入,并将其附加到主窗体。

var selected_items = []

function add_item_to_checkbox(item) {
    localStorage.setItem('selected_items', JSON.stringify(selected_items));
checkbox.on("click", add_item_to_checkbox);

bahh ...看看我的jsfiddle它更容易阅读,是的。我不必在stackoverflow上将JS键入到textarea中。

这是我的javascript minus a few things that are specific to my code。我确信它可以改进,但它对我的应用程序非常有效。