PHP会话与jQuery show()/hide()的比较

PHP会话与jQuery show()/hide()的比较,php,jquery,session,forms,user-experience,Php,Jquery,Session,Forms,User Experience,我正在处理一个购买流程。该过程包括4个步骤。前两个步骤是我们获取所有客户数据的步骤。第三步使用AJAX将数据发送到服务器,然后显示付款表单。付款后,在步骤4中感谢客户 我的问题是关于第一步和第二步。现在,所有这些步骤都在同一页上。我有一张表格分为两张。在第一步中,第二个div被隐藏(css:{display:none;}),当客户进入第2步时,第一个div用jQueryhide()隐藏,第二个div用jQueryshow()显示 我的问题是,我希望客户能够使用web浏览器中的“后退”按钮返回到步

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

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

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


我们将看看是否有人理解我的想法和问题。

Ajax和后退按钮通常不能很好地配合使用。你应该只提供一个链接,将采取“回来”。但是,如果您再次提交第一份表格,这会有任何问题吗?您会得到额外的或孤立的条目吗?

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

最简单的欺骗方法(而且还远不可靠)是使用javascript函数专门侦听“window.unload”事件,但只有当用户看到表单的第二部分并且没有点击提交按钮或任何其他设置以提交或转到另一页时才可以(像一个链接)

但这相当具有侵入性,因为用户可能真的只想离开页面;很难正确设置时间,因为如果用户从第二个表单单击返回,您只想返回false,而不想离开页面做任何其他事情(包括您想要的);如果他们真的想关闭窗口,则可能会出错(你应该尽量不要侵犯它);基本上,据我所知,用户点击后退按钮不会发生跨浏览器javascript事件。但其他人可能不会


但是,如果你能确定时间,不介意冒险,这将是一个巧妙的技巧。

+1此外,如果你将表单拆分为不同的页面,你可以在执行时验证数据,而不是一次验证所有数据。这可能会使生活更轻松。