【问题标题】:How to put php GET params in a HTML file?如何将 php GET 参数放入 HTML 文件中?
【发布时间】:2013-05-17 16:31:56
【问题描述】:

我有一个 PHP 文件,它根据 GET 参数集返回一个 JSON 数组。我不想重新加载页面,所以我使用 jQuery + AJAX 制作了一个简单的函数来在 div 标签中显示结果。

但是有一个问题,因为使用 AJAX 不会更改 URL,用户将无法共享链接。

HTML 称为“calculate.html”,GET URL 是这样的:

myweb.com/calculate.php?sex&female&age=23&brand=pull%26bear&msg=hello%20stackoverflow

我想知道在 AJAX 调用返回结果时修改 HTML 的 URL 的最佳做法是什么。当有人打开这个 URL 时,HTML 会读取它,然后使用这些参数执行调用。

我修改了.htaccess,这是html的url:

myweb.com/calculate/

并带有参数:

myweb.com/calculate/female/23/pull%26bear/hello%20stackoverflow

任何提示、建议或帮助将不胜感激,如果您需要更多信息,请告诉我,我会编辑帖子。

【问题讨论】:

  • 最佳实践可能是更改 URL 的 location.hash - 这不会触发重定向,但您可以在 document.ready 上单独解析散列中的数据并重新运行AJAX 基于那里的东西。现代浏览器具有"hashchange" event,它在哈希更改时触发,但older browsers don't
  • 在@Blazemonger 评论之后,您有 window.onhashchange 事件:developer.mozilla.org/en-US/docs/Web/API/window.onhashchange
  • 对于 HTML5 解决方案,也可以使用 history.pushStatepopstate 事件。但敢于关心你的目标受众,因为它是 HTML5...
  • 我会更改 calculate.php 以返回 HTML 内容而不是 JSON,然后您只需添加选项以将其显示在 div 或新选项卡上,其中 URL 将被更改,并且用户可以共享 URL。
  • @Joëlle 您要么 使用 URL 哈希 HTML5 推送状态 API。哈希是一种 hack 但广泛兼容,推送状态 API 是官方认可的机制,但只有较新的浏览器支持它。

标签: php jquery ajax .htaccess friendly-url


【解决方案1】:

在完成您的 AJAX 请求后,您可以使用

重定向页面 url
window.location.replace("myweb.com/calculate/female/23/pull%26bear/hello%20stackoverflow");

【讨论】:

  • 他不想要重定向。该 URL 应该在不重定向到新 URL 的情况下刷新。
【解决方案2】:

您可以在您的网址中使用 # 标签 例如http://yoursite.com?param1=23#tempcode

因此,当 url 有 #tag 临时代码时,您可以调用 ajax 代码。 这样你就可以分享你的新网址了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 2021-05-29
    • 2013-06-24
    • 2018-07-31
    相关资源
    最近更新 更多