【问题标题】:PHP/JQuery - Redirect page into an AJAX requestPHP/JQuery - 将页面重定向到 AJAX 请求
【发布时间】:2017-06-09 20:42:06
【问题描述】:

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

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

此时我想将用户重定向回该特定线程 - 因此我相信他们需要通过一系列 AJAX 请求进行引导。这可能吗?

补充:另外,如果您认为此论坛流程效率不高,请告诉我您的意见。

【问题讨论】:

  • 您不指定#5 是否也是 AJAX。如果 PHP 通过页面加载而不是 AJAX 处理表单 POST 值,那么标准做法是将 header() 它们返回到它们的来源......
  • 我建议不要过度使用 ajax。对于论坛中的所有导航,似乎很烦人。
  • #5 也是对 php 文件的 AJAX 请求(更新了问题) - 我在考虑 header() 选项,但如果 URL 从未更改,我将如何指定呢? @Kevin_Kinsey
  • 您说“此外,如果您认为此论坛流程效率不高,请告诉我您的意见。”所以我做到了。
  • 如果 #5 是 ajax,那么“重定向”不是你想要的。您仍然在正确的页面上。您永远不应该摆脱论坛内容,只需将其隐藏然后再次显示即可。

标签: php jquery ajax request forum


【解决方案1】:

看来你有几个选择:

  1. 继续使用Ajax 进行提交,因此无需重定向。 (编辑:听起来您已经在这样做了,所以问题可能是您正在丢弃要显示的内容,而不是暂时隐藏它)
  2. 实现一种将页面直接加载到论坛的方法。这将是对 ajax 调用的补充。您将跟踪论坛 ID,将其包含在 $_POST 参数中,并让服务器重定向到适当的 URL。
  3. 生成 javascript(或为您的固定 javascript 使用的适当字段/数据),这将导致页面在重新加载时自动进行必要的 AJAX 调用。
  4. 跳过 Ajax,只为所有内容使用整页加载

混合使用,有时使用 Ajax,有时使用页面加载并不理想,但有时很难完全避免。

记住当用户在浏览器中点击返回按钮或历史记录时会发生什么。您希望他们在回击时离开您的应用程序吗?他们最终可能会在一个奇怪的地方混合 ajax/页面加载。因此,人们青睐(4)

(2) 可能需要做很多工作。

(1) 没问题,BACK 按钮总是将用户带回到其他网站。就个人而言,这不会打扰我。

(3) 会很痛苦而且很慢,然后你会得到非常奇怪的前/后行为。避免。

(4) 可能是最好的。

【讨论】:

  • #2 是完美的——我已经为我的 sql 查询保存了变量。我用较小版本的 ajax 请求创建了一个 JQuery 函数,并将变量硬编码到测试中——它有效!所以现在我将通过 URL 传递 php 文件中的变量并使用 GET 方法接收它们,它应该是完美的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-11
  • 2013-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多