【问题标题】:PHP Sessions vs. jQuery show()/hide()PHP 会话与 jQuery show()/hide()
【发布时间】:2010-03-08 22:41:44
【问题描述】:

我正在处理购买流程。该过程包括 4 个步骤。前两个步骤是我们获取所有客户数据的地方。第三步使用 AJAX 将数据发送到我们的服务器,然后显示付款表格。付款后,在第 4 步中感谢客户。

我的问题是关于第 1 步和第 2 步。现在所有这些步骤都在同一页面上。我有一个表格分为两个<div>'s。在第一步中,第二个 div 被隐藏(css:{display:none;}),当客户进入第 2 步时,第一个 div 用 jQuery hide() 隐藏,第二个 div 用 jQuery show() 显示。

我的问题是我希望客户能够使用网络浏览器中的“返回”按钮返回到第 1 步,这显然现在不起作用。是否有任何纯 JavaScript 解决方案?无论如何,我们将要求我们的用户激活 js。还是开始使用会话更好?该网站基于 PHP。

我们会看看有没有人理解我的想法和问题..

【问题讨论】:

    标签: php jquery session forms user-experience


    【解决方案1】:

    更改 URL 片段(# 后面的位)会创建一个浏览器历史记录条目。许多网络应用程序利用这一点来做你所描述的事情。看看jQuery BBQ plugin(演示here)。

    【讨论】:

      【解决方案2】:

      Ajax 和后退按钮通常不能很好地配合使用。您应该只提供一个可以“返回”的链接。但是,如果您再次提交第一个表单,这会有什么问题吗?您最终会得到额外的或孤立的条目吗?

      【讨论】:

      • +1 此外,如果您将表单拆分为不同的页面,您可以随时验证数据,而不是一次验证所有数据。可能会让生活更轻松。
      【解决方案3】:

      最简单的作弊方法(而且远非可靠)是拥有一个专门侦听“window.unload”事件的javascript函数,但前提是用户可以看到表单的第二部分并且不点击提交按钮或您设置的任何其他内容以提交或转到另一个页面(如链接)。

      但这是相当侵入性的,因为用户可能真的只想离开页面;很难将时间设置得恰到好处,因为您只想在用户从第二个表单返回时返回 false,而不是离开页面进行其他任何操作(包括您想要的);如果他们想真正关闭窗口,它可能会搞砸(你应该尽量不要侵犯);基本上,据我所知,用户单击后退按钮没有跨浏览器的 javascript 事件。但其他人可能不会。

      但如果你能算出时间并且不介意冒险,那将是一个巧妙的把戏。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-08
        • 2019-05-13
        • 2020-03-08
        • 1970-01-01
        相关资源
        最近更新 更多