1

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

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

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

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

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

  • 提交按钮

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

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

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

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

让我知道是否需要进一步澄清。在此先感谢您的任何建议。

更新

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

4

1 回答 1

2

我现在也遇到了这个问题。我通过将选中的项目写入 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,它更容易阅读,是的。我不必将 JS 输入到 stackoverflow 上的文本区域中。

这是我的javascript 减去一些特定于我的代码的内容。我确信它可以改进,但它对我的应用程序非常有效。

于 2015-03-17T04:58:54.167 回答