2017-06-09 53 views
1

我在我的网站上设计了一个通过AJAX请求运行的论坛,因此URL根本不会改变。你点击一个按钮,AJAX请求一个PHP文件,并且响应更新客户端。这适用于我 - 但是,我需要知道是否可以在表单提交后通过一系列AJAX请求重定向用户。PHP/JQuery - 将页面重定向到AJAX请求

  1. 用户输入forum.php页
  2. 用户点击主题按钮(AJAX请求加载线程)上螺纹标题
  3. 用户点击(AJAX请求加载回复)上的回复按钮
  4. 用户点击(AJAX请求加载文本编辑器)
  5. 用户点击提交(AJAX请求提交表单)

在这一点上,我想将用户重定向BA ck到那个特定的线程 - 因此我相信他们需要通过一系列的AJAX请求来定向。这可能吗?

额外:如果您认为此论坛过程效率不高,请让我知道您的意见。

+1

您不指定#5是否也是AJAX。如果PHP通过页面加载而不是AJAX来处理表单POST值,那么标准做法是将它们返回到header(),他们来自哪里...... –

+0

我建议不要过度使用ajax。对于论坛中的所有导航,看起来很烦人。 – developerwjk

+0

#5也是一个AJAX请求到一个PHP文件(更新问题) - 我正在考虑header()选项,但我如何指定,如果URL从未改变? @Kevin_Kinsey –

回答

1

看来你有几个选择:

  1. 继续使用Ajax的提交,所以没有必要重定向。 (编辑:听起来你已经这样做了,所以这个问题可能是你放弃你要显示的内容,而不仅仅是隐藏它暂时)
  2. 实施办法直接加载一个页面到论坛。这是除了ajax调用之外的。您将跟踪论坛ID,将其包含在$ _POST参数中,并让服务器重定向到适当的URL。
  3. 生成JavaScript(或适合您的固定javascript使用的适当字段/数据),这会导致页面在重新加载时自动进行必要的AJAX调用。
  4. 跳过阿贾克斯,只是用整页加载的一切

混合东西,有时通过使用Ajax,有时使用页面加载不理想,但它有时是难以完全避免的。

请记住用户在浏览器中点击后退按钮或历史记录时会发生什么情况。你想让他们在回击时离开你的应用吗?他们最终可能会在混合Ajax /页面加载的奇怪位置结束。为此,人们赞成(4)

(2)可能是很多工作。

(1)将是确定的,并且BACK按钮只会始终以用户遥想到其他网站。就个人而言,这不会打扰我。

(3)将是一个痛苦,也很慢,然后你会得到非常奇怪的前进/后退的行为。避免。

(4)可能是最好的。

+0

#2是完美的 - 我已经为我的sql查询保存了变量。我创建了一个带有较小版本ajax请求的JQuery函数,并对变量进行了硬编码以便测试 - 它工作正常!所以现在我将通过URL从php文件传递变量,并使用GET方法接收它们,它应该是完美的。 –

相关问题