Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter中的Ajax分页:遵循的最佳模式?_Php_Jquery_Ajax_Codeigniter - Fatal编程技术网

Php CodeIgniter中的Ajax分页:遵循的最佳模式?

Php CodeIgniter中的Ajax分页:遵循的最佳模式?,php,jquery,ajax,codeigniter,Php,Jquery,Ajax,Codeigniter,我正试图用AJAX动态分页来取代使用CodeIgniter开发的网站中的经典分页系统,但我不确定正确的方法,我对AJAX非常陌生 现行制度 我的页面是这样的: site.com/client/* 带有*用于查询的偏移量。 在我的客户机控制器中,index()从数据库中提取10个客户机(如果参数存在,则开始从中提取),然后加载视图以显示数据。 看起来是这样的: site.com/client/ site.com/client/10 site.com/client/20 and so on 我

我正试图用AJAX动态分页来取代使用CodeIgniter开发的网站中的经典分页系统,但我不确定正确的方法,我对AJAX非常陌生

现行制度 我的页面是这样的:

site.com/client/*
带有*用于查询的偏移量。
在我的客户机控制器中,index()从数据库中提取10个客户机(如果参数存在,则开始从中提取),然后加载视图以显示数据。 看起来是这样的:

site.com/client/
site.com/client/10
site.com/client/20 
and so on
我想从这个解决方案转移到一个基于ajax的解决方案,以便通过点击按钮加载接下来的10个客户端

假设我们有
  • 一个Ajax事件处理程序,在按下按钮时调用。它将通过检查DOM来发送当前的“偏移量”
  • 从数据库中获取数据的php文件,如index()方法
  • 用于正确显示客户端数据的HTML模板
  • 考虑到MVC模式的使用,我应该如何组织这些文件?示例将非常感谢。

    计划在您的视图中设置一个“#触发器”按钮和一个“#内容”div。然后,当您单击“#触发器”时,将执行jQuery处理程序并执行AJAX请求,将结果放入“#容器”中。一种非常简单的方法是,让按钮存储一个值,每次单击该值都会增加10。 数据库中的表必须有一个字段,以某种方式标识页面中的显示顺序,我已将此字段命名为“id”

    您可以从一个名为client.php的控制器开始:

    }

    然后,需要视图主体('client/client_view.php'),它将包含“#trigger”按钮和“#content”div,简单如下:

    <button id='trigger' value='1'>Click me for loading the next 10 objects</button>
    <div id='content'>
    </div>
    
    希望能有帮助

    <button id='trigger' value='1'>Click me for loading the next 10 objects</button>
    <div id='content'>
    </div>
    
    <script type='text/javascript'>
        var data = {
            //I have enabled the csrf protection in my CodeIgniter,
            //so I need this var in every AJAX request
            csrf_test_name: '<?php echo $this->security->get_csrf_hash(); ?>'
        };
    
        $(document).on('click', '#trigger', function() {
    
            data['start'] = parseInt($(this).val());
    
            var posting = $.post('client/get', data);
            //success function
            posting.done( function(data) {
                $('#content').html(data);
            });
            $(this).val(data['start']+10);
        });
    </script>
    
    class Client_model extends CI_Model {
    
        function __construct() {
            parent::__construct();
        }
    
        function get($start) {
            $sql = "SELECT c.name
                    FROM clients c
                    WHERE c.id BETWEEN ? AND ?
                    ORDER BY c.id";
            $query = $this->db->query($sql, array($start, $start+9));
            return $query->result_array();
        }
    }