【问题标题】:jQuery ajax with Codeigniter带有 Codeigniter 的 jQuery ajax
【发布时间】:2012-06-07 04:50:01
【问题描述】:

JQuery 的 AJAX “.get” 方法调用控制器的(php 页面)方法,并进一步处理返回的数据……但我们认为这是最佳实践,控制器只是将控制权转移到模型和视图..控制器从不返回任何内容或回显任何数据......那么我们如何支持这个论点?我可能错了..仍处于初始学习阶段,如果您觉得这个问题有点太天真,请原谅我:(。

一个例如。是我试图实现的 JQuery 的自动完成插件,它需要来自数据库的用户名数组。一般来说,使用 CI.. 流程是 View form -> Controller -> Database Model(DATA) -> Controller (DATA)-> another view...但是如果我必须实现 JQuery/AJAX 方式,那么控制器将不得不输出数据,以便 AJAX 调用函数 (get) 可以获取它。对吧?

那么在不影响 MVC 范式的情况下,流程应该是什么?

问候。

【问题讨论】:

    标签: codeigniter jquery


    【解决方案1】:

    MVC 只是一种设计模式。它往往使事情变得更容易。但它是一种设计应用程序的方式,并不意味着你必须坚持下去。

    我使用 Codeigniter 并使用控制器来回复 ajax。在我的例子中,控制器负责接收请求,并将数据发回(就像我在调用视图或模板一样)。

    不要想太多,用你想要的,当你想的时候,最适合你需要的方式。

    【讨论】:

      【解决方案2】:

      如果您真的想坚持使用 mvc,另一个选择是拥有一个仅用于 ajax 响应的视图。

      您可以让它简单地回显响应,或者如果您总是使用 json 回复,您可以让它 json_encode() 响应。

      【讨论】:

        【解决方案3】:

        正如 Nicolás 指出的,MVC 是一种设计模式,而不是法律。

        但是,您不应将 AJAX 视为 View,而应将其视为一种传输方式,一种在 ControllerView 之间进行通信的媒介,或者ModelView 发生。因此,您的实际 View 不再由 PHP 表示,而是由浏览器本身表示,或者更确切地说是您在其上运行的 JavaScript 代码。您可以使用像Zend JSON-RPC Server 这样的 RPC 服务器抽象出 PHP 端的 AJAX。

        另请注意,对于 Web 应用程序,Model-View-Presenter 和类似模式可能更有用,因为它可以保持 View 和 Presenter 之间的通信。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-04-18
          • 1970-01-01
          • 2012-05-11
          • 2020-02-28
          • 1970-01-01
          • 1970-01-01
          • 2012-07-21
          相关资源
          最近更新 更多