【问题标题】:One page website with CodeIgniter and jQuery(AJAX)带有 CodeIgniter 和 jQuery(AJAX) 的一页网站
【发布时间】:2009-12-07 18:29:49
【问题描述】:

我希望建立一个单页网站,在 PHP(显然使用 CodeIgniter)和 AJAX(由 jQuery 支持)上运行,目前我有一个从数据库,根据在线选择的类别,然后使用这些结果构建一个 url,

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>";
    }
}

我的问题是,为此我需要从控制器(主页)运行所有查询,因为用户永远无法离开页面,实际上我想要发生的事情是,如果用户点击例如Blog,我想要运行一个查询,它从数据库中的内容表中选择与博客类别相关联的所有内容,然后我想在我的网站的right-content div 中以手风琴风格显示它。然后,如果用户选择灵感,则查询再次运行,并将灵感数据添加到与博客数据相同的 div 中,但在其自己的手风琴中,而不是覆盖博客数据。

这是可遵循的,更重要的是可能吗?我该从哪里开始,我可以同时使用 CodeIgniterjQuery,并且真的很想推动这些技术和我自己。

谢谢

【问题讨论】:

  • 你不能使用其他控制器来处理 AJAX 请求吗?
  • 这就是我的想法,我希望有人能支持我,你的想法是使用链接的 URI 运行查询以获取我需要的数据并在阿贾克斯。这是正确的方法吗?

标签: php javascript jquery ajax codeigniter


【解决方案1】:

我不知道 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 中。

【讨论】:

    【解决方案2】:

    您只需要您的 AJAX 调用来引用独特的控制器来保持您的 MVC 分离。这将允许您保持后端代码的可维护性,同时提供单一首页的外观。您需要确保控制器 AJAX 响应不会生成任何视图数据,以将开销降至最低。

    您甚至可以将视图数据加载为部分数据并将字符串作为 AJAX 响应返回。

    您可以有任意数量的控制器/模型组合来支持您的 AJAX 请求,即:

    1. /blog/unique-blog-identifier(博客控制器,索引方法,unique-blog-identifier第一个参数)
    2. /news/unique-news-identifier(新闻控制器,索引方法,unique-blog-identifier第一个参数)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-21
      • 2014-04-18
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      相关资源
      最近更新 更多