PHP MVC附加URL参数而不重新加载页面?

时间:2015-03-31 13:10:47

标签: php jquery ajax

我正在一个有动画背景的网站上工作,动画是由javascript驱动的,因此当用户输入并提交搜索时,如果动画要顺利继续,搜索完成并附加结果将会很棒到DOM。

我已经成功地将搜索结果从ajax请求返回到JS,尽管ajax请求的url本身与浏览器中当前显示的url不同。

所以我的目标是让用户进入网站,例如www.example.com/public/home/search

他们在文本输入中键入内容并按搜索,网址更改为

www.example.com/public/home/search?q=some+search+query or
www.example.com/public/home/search/somesearchquery or
www.example.com/public/home/search/#somesearchquery, etc.

但页面状态保持不变,结果将附加到DOM,并且不会发生完全重新加载。

返回上面的网址应该加载页面并自动发送查询,返回已经附加结果的页面。

我不知道天气这是可能的,无论是否遵守MVC模式。

我没有使用任何mvc框架,如果可以的话我想避免使用它,而是使用类似于发现的那个的裸骨系统。 https://www.youtube.com/watch?v=OsCTzGASImQ

任何想法,建议,替代方案?

1 个答案:

答案 0 :(得分:1)

此处有“无需重新加载更改网址”的答案,例如:Modify the URL without reloading the page

所以,我认为你只需要从其中一个答案中实现一些解决方案并运行一些改变页面的javascript。

您必须要小心,因为修改后的URL必须加载用户在javascript引起的更改后看到的相同版本的页面。否则,如果用户复制并粘贴URL,他将不满意。

归档它的一种方法是创建一个“更新”页面的javascript函数,而不是根据文本输入重新加载它(比方说,f)。然后,如果用户尝试直接访问该页面

www.example.com/public/home/search?q=some+search+query

您的服务器端代码只需返回页面 search ,最后调用此javascript函数,如下所示:

f("some search query")

因此,此功能将更新页面,最终效果将与用户刚进入页面并尝试键入某些搜索查询后相同。

(请注意,在这两种情况下都可以使用此函数f:当用户键入要搜索的文本以及用户只是粘贴完整的URL时。)