2015-03-31 228 views
0

我正在一个有动画背景的网站上工作,动画是由javascript支持的,因此当用户输入并提交搜索时,如果动画能够顺利地继续播放,那么搜索完成并将结果追加到DOM。PHP MVC追加URL参数,无需重新加载页面?

我已经成功地将搜索结果从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并没有全部重新加载发生。

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

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

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

任何想法,建议,选择?

+0

因此,当用户点击“搜索”按钮时,是否要更改网址并在页面上进行一些更改? – 2015-03-31 13:19:58

+0

如果您需要查询您需要在前端执行的散列,则散列(#)永远不会发送回服务器,因此/ search /#somesearchquery =/search /理论上在理论上。 你可以用JS MVC来实现类似AngularJS的路由,或者如果你对PHP感到满意,可以看看SLIM Framework,它很容易学习,并且非常灵活地创建路由/ apis ... – 2015-03-31 13:20:11

+0

@VitorLima是的,这是正确的。 – 2015-03-31 13:51:27

回答

1

有几个答案在这里“更改URL没有重新加载”,例如:Modify the URL without reloading the page

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

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

将其归档的一种方法是创建“更新”页面的JavaScript功能,无需基于文本输入重新加载它(例如,f)。然后,如果用户尝试直接访问该页面

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

你的服务器端代码只返回网页搜索与在结束这个JavaScript函数的调用,这样的:

f("some search query")

因此,该功能将更新页面和最终效果是一样的,用户只需在网页和尝试后进入类型部分搜索查询。 (请注意,此功能f可用于这两种情况:用户键入要搜索的文本以及用户何时完全粘贴URL)。

相关问题