【问题标题】:How to call a php controller method using jquery?如何使用 jquery 调用 php 控制器方法?
【发布时间】:2011-02-04 09:28:43
【问题描述】:

我正在开发一个 Web 应用程序,并且我正在将 jquery 集成到其中...现在正在寻找带有 jquery 的 ajax 调用到我的控制器功能...。

jquery.ajax() 我认为会很有用...但是如何调用我的控制器方法....

$.ajax({
        type: "POST",
        url: "http://localhost/codeigniter_cup_myth_new/index.php/libraryController/loadbookdetails",
        data: "",
        contentType: "application/json; charset=utf-8",
        async: false,
        dataType: "json",
        success: function(jsonObj) {

function loadbookdetails()
{
    //Paging 
        $college=$_SESSION['college'];
        $this->load->library('pagination');
        $data['bookdetails'] = $this->librarymodel->selectbook($college);
        //$data['rackOptionData'] = $this->librarymodel->selectrack();
         if(empty($data['bookdetails']))
          {
             $data['comment'] = 'no record found!';
          }

        $this->load->view('bookdetials',$data);
}

我在这里获取这些记录,如何将其与jquery.ajax() 函数一起使用,以及如何将$data 转换为 json 并将其与 jquery 一起使用并使用表进行迭代...

【问题讨论】:

    标签: php json codeigniter jquery


    【解决方案1】:

    您不能直接将 jQuery 与 PHP 函数接口,因为它们不会同时运行:PHP 在服务器端执行(通常生成 HTML 页面),jQuery 在客户端运行。

    您将让 jQuery 对 PHP 页面的 URL 进行 Ajax 调用。该 PHP 页面将成为所需的控制器,并执行请求的操作。

    是否有预定义的方法取决于您使用的 PHP 框架(如果有)。

    【讨论】:

    • @chandru 我对 CI 的了解还不够,无法告诉你如何为 AJAX 请求设置文件,但我很确定有一个内置的方法。
    【解决方案2】:

    如果您已经拥有view/bookdetials.php 那么你需要的一切就是(而不是你的 javscript 代码):

    在页面某处添加div,如下所示:

    <div id="ajax-palaceholder"></div>
    

    然后添加这个javascript代码:

    <script type="text/javascript">
    $(document).ready({
      $('#ajax-palaceholder').load('http://localhost/codeigniter_cup_myth_new/index.php/libraryController/loadbookdetails');
    });
    </script>
    

    这将在页面加载时执行 ajax 请求,然后将加载的内容放入 div#ajax-palaceholder

    【讨论】:

      【解决方案3】:

      对于 PHP >= 5.2.0,您可以使用 json_encode()。您的代码如下所示:

      $this->load->view('bookdetails', json_encode($data));
      

      可以在 here 找到关于 CodeIgniter + AJAX 的大量参考资料。

      【讨论】:

        【解决方案4】:

        Ajax 请求必须与 php 脚本联系。该脚本必须返回数据。 您正在使用 json 作为响应格式:

        dataType: "json",
        

        因此,对于您的示例,只有输出表单脚本必须是 json。而且只能是 json。

        您的服务器脚本(bookdetials 视图)将如下所示:

          //Initialise data
          $bookdetails = ...
          // json encode data
          echo json_encode( $bookdetails );
          // make sure nothing else go to the output
          ???
        

        ??? - 取决于系统。通常你必须在这里阻止页面布局。

        json 作为响应很好,但在大多数情况下 HTML 就足够了...

        【讨论】:

          猜你喜欢
          • 2011-06-22
          • 1970-01-01
          • 2019-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-04
          • 1970-01-01
          • 2011-05-26
          相关资源
          最近更新 更多