【问题标题】:How to track checkboxes with Django and endless pagination?如何使用 Django 跟踪复选框和无休止的分页?
【发布时间】:2015-03-17 12:58:54
【问题描述】:

我是 Django 菜鸟,遇到的情况超出了基本文档等范围。

我正在更新一个具有如下结构的订购网页:

  • 用于收集一般信息(姓名、日期等)的多个文本框等

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

  • 用户可以在其中手动输入目录 ID 的文本框

  • 提交按钮

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

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

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

我已经查看了很多帖子,但我相信最接近的解决方案由于无休止的分页而变得无用。

如果需要进一步说明,请告诉我。提前感谢您的任何建议。

更新

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

【问题讨论】:

    标签: forms checkbox django-endless-pagination


    【解决方案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);
    

    呸……看看我的jsfiddle,它更容易阅读,是的。我不必在 stackoverflow 上的 textarea 中输入 JS。

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

    【讨论】:

      猜你喜欢
      • 2013-06-28
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 2022-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多