我希望建立一个单页网站,该网站在PHP
(显然使用CodeIgniter
)和AJAX
(由jQuery
支持)上运行,目前我有一个菜单从数据库填充,取决于选择什么catergories在线,然后使用这些结果建立一个网址,
if(isset($main_menu)) {
foreach($main_menu as $row) {
print "<li><a href='index.php/home/category/$row->category_id'>$row->category_name</a></li>";
}
}
我的问题是,为此,我需要从控制器(主页)运行所有查询,因为用户永远不会离开页面,实际上我想要发生的是,如果用户点击例如{{1}我希望运行一个查询,从数据库中的内容表中选择与博客类别相关的所有内容,然后我想在我的网站Blog
中以手风琴风格显示它。然后,如果用户选择例如灵感,则查询再次运行,并将灵感数据添加到与博客数据相同的div中,但是以自己的手风琴而不是覆盖博客数据。
是否可以跟随,更重要的是可能,以及我将在何处开始,我可以使用right-content div
和CodeIgniter
,并且真的想要推动这些技术和我自己。
由于
答案 0 :(得分:2)
我不知道codeigniter,但我认为这在大多数mvc情况下都是类似的。您可以在哪里使用方法返回对AJAX请求的响应。
这是Ruby和Prototype,但你应该明白这一点。
控制器:
def get_blog
# find stuff
# render or just return either js or json or xml or whatever
end
使用Javascript:
new Ajax.Request('http://yourdomain.com/get-blog', {
onSuccess: function(response) {
// do something with your response data
}
});
我道歉它不是用PHP。
答案 1 :(得分:1)
您只需要使用AJAX调用来引用独特的控制器以保持MVC分离。这将允许您保持后端代码可维护,同时给出单一首页的外观。您需要确保控制器AJAX响应不会生成任何视图数据,以将开销降至最低。
您甚至可以将视图数据加载为partials并将字符串作为AJAX响应返回。
您可以使用任意数量的控制器/模型组合来支持您的AJAX请求,例如: