【问题标题】:How to select items from multiple pages using PHP, HTML, etc?如何使用 PHP、HTML 等从多个页面中选择项目?
【发布时间】:2010-10-30 16:03:49
【问题描述】:

在我正在处理的网站上,我正在显示来自数据库查询的结果。每个页面显示 15 个结果,因此如果查询返回 45 个结果,它们将显示在 3 个单独的页面上,每个页面包含 15 个结果。

我希望用户能够从第一页选择任意数量的项目,然后切换到其他页面并从这些页面中选择项目,同时仍然记住在第一页上选择的项目。 (最终,当用户选择了所有项目时,他将单击提交按钮。)因此,如果用户导航回第一页,他检查的项目应该显示为被选中。在我在 Web 上看到的页面上,当用户导航回第一页时,所有复选框都会再次被清除(这不是我想要的)。

关于实现这一目标的最佳方法的任何想法?谢谢。

【问题讨论】:

    标签: php html checkbox


    【解决方案1】:

    记住页面之间的选择意味着您有一些需要存储在某处的状态。有多种方法可以做到这一点,但归结为其中一种......

    1. 将其保存在客户端(例如 cookie)
    2. 将其保存在服务器上(例如在数据库中)
    3. 继续向前和向后发送(例如隐藏的表单字段,如在 ASP.NET 视图状态中)

    PHP 和 ASP.NET 等平台提供的一个常见抽象是“会话”的概念。会话状态的实际实现可能是上述 3 种可能性的某种组合,它可能提供了最简单的途径。我建议你查看 PHP 中的会话状态。

    【讨论】:

    • 会话+1。您可以构建一组选定的项目并将其存储在 Session 中。完成后记得清除它。
    • 使用选项 3 - 其他选项可能导致竞争条件。
    • 非常有帮助,几乎是我认为我必须做的。谢谢!
    【解决方案2】:

    使用隐藏输入来继承前一组的结果

    <!-- hidden fields -->
    <input type='hidden' name='whatever[]' value='whatever'/>
    
    <!-- checkboxes -->
    <input type='checkbox' name='whatever[]' value='whatever'/>
    

    【讨论】:

      【解决方案3】:

      你可以做很多事情。

      • 另存为 JavaScript cookie
      • 在每次点击时使用 AJAX 保存为会话
      • 将每个页面隐藏为“标签”,以便它们实际存在但未显示。

      【讨论】:

      • 我喜欢选项卡的想法,但根据经验,我发现它在几页后并不能很好地扩展。
      • 所有这些都需要 javascript 并且不会优雅地降级
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      • 2016-12-22
      • 2016-06-13
      • 2017-09-17
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      相关资源
      最近更新 更多