Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将php GET参数放入HTML文件中?_Php_Jquery_Ajax_.htaccess_Friendly Url - Fatal编程技术网

如何将php GET参数放入HTML文件中?

如何将php GET参数放入HTML文件中?,php,jquery,ajax,.htaccess,friendly-url,Php,Jquery,Ajax,.htaccess,Friendly Url,我有一个PHP文件,它根据GET参数集返回一个JSON数组。我不想重新加载页面,所以我使用jQuery+AJAX制作了一个简单的函数,在div标记中显示结果 但是有一个问题,因为使用AJAX不会改变URL,用户将无法共享链接 HTML称为“calculate.HTML”,获取URL如下: myweb.com/calculate.php?sex&female&age=23&brand=pull%26bear&msg=hello%20stackoverflow 我想

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

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

HTML称为“calculate.HTML”,获取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

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

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

window.location.replace("myweb.com/calculate/female/23/pull%26bear/hello%20stackoverflow");
您可以在url中使用#标记 乙二醇

因此,当url具有#标记tempcode时,可以调用ajax代码。
通过这种方式,您可以共享您的新url

最佳实践可能是更改url的
位置。哈希值
——这不会触发重定向,但您可以在document.ready上单独解析哈希值中的数据,并根据其中的内容重新运行AJAX。现代浏览器具有当哈希更改时触发的事件。但是@Blazemonger注释之后,您有window.onhashchange事件:或者,对于HTML5解决方案,使用
history.pushState
popstate
事件。但要敢于关心你的目标受众,因为它是HTML5…我会更改calculate.php以返回HTML内容而不是JSON,然后你可以添加选项,将其显示在div或新选项卡上,URL将被更改,用户可以共享URL。@Joëlle你可以使用URL哈希或HTML5推送状态API。散列是一种黑客攻击,但广泛兼容,推送状态API是官方认可的机制,但只有较新的浏览器支持它。他不希望重定向。URL应该在不重定向到新URL的情况下刷新。