php - 需要在 codeigniter 中使用 ajax 分页

标签 php jquery ajax codeigniter pagination

我在 codeigniter 中有一个 View ,其中我使用了 codeigniter 分页方法。我需要通过ajax加载分页,这样我的页面就不会改变..

目前我的首页网址是这样的。 http://192.168.1.60/dream1/testimonial

一旦我进入下一页,它会将网址更改为 http://192.168.1.60/dream1/testimonial/page/2

我需要的是从相同的网址加载分页,即使我更改了页面

这是我的 Controller :

<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class testimonial extends CI_Controller {

    public function __construct() {
        parent::__construct();

        
         $this->load->model('testimonials_model','obj_testimonials',TRUE);
    }
    
    public function index() {
        $row=0;
//        $limit='2';
        $this->load->library('pagination');
        $config = $this->get_pagination_config();
        $this->pagination->initialize($config);
        $data['links'] = $this->pagination->create_links();
        $data['testimonials']=$this->obj_testimonials->get_all_entries($row,$lim=2,$condition=array(),'testimonials_display_order','');
        $this->load->view('web/testimonials',$data);
    }
    public function page($page_number=1) 
    {
        $this->load->library('pagination');
        $pagination_config = $this->get_pagination_config();
        
        $per_page = 1;
        $row= $page_number * $per_page - $per_page;
        $limit = $pagination_config["per_page"];

        $this->pagination->initialize($pagination_config);
        $data['links'] = $this->pagination->create_links();
        $data['testimonials']=$this->obj_testimonials->get_all_entries($row,$lim=2,$condition=array(),'testimonials_display_order','');
        $this->load->view('web/testimonials',$data);
    }
    
    public function get_pagination_config()
    {
        $config['base_url'] = site_url() . '/testimonial/page';
        $config['full_tag_open'] = '<li>';
        $config['full_tag_close'] = '</li>';
        $config['uri_segment'] = 3;
        $config['total_rows'] = $this->obj_testimonials->countrows();
        $config['per_page'] = 2;
        return $config;
    }
}

(我没有使用 if 项目将每页显示为两个)

我的vie页面是这样的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link type="image/png" rel="shortcut icon" href="<?= base_url() ?>images/fav.png"/>
        <link href='http://fonts.googleapis.com/css?family=Open+Sans:300,400,600' rel='stylesheet' type='text/css'>
            <title>Kerala Tourism Places | kerala Tour Packages Review</title>

<meta name="description" content="Here are the testimonials given by travel lovers about thier Kerala holidays, our Honeymoon Packages and holiday packages.">

<meta name="keywords" content="Kerala Tourism Places, kerala Tour Packages Review, kerala Tour Packages">
<meta http-equiv="Content-Language" content="en-us" />
<meta name="author" content="Dreamholidays Kerala" />
<meta http-equiv="Robots" content="index,follow,all" />
<meta name="GOOGLEBOT" content="index,follow,all" />
<link rel="canonical" href="http://dreamholidayskerala.com/testimonials.php" />
<base href="http://dreamholidayskerala.com" />
<meta name="copyright" content="dreamholidayskerala.com">
            <link href="<?= base_url() ?>css/style.css" rel="stylesheet" type="text/css" />
            <link rel="stylesheet" href="<?= base_url() ?>fonts/font.css">
                <link rel="stylesheet" type="text/css" href="<?= base_url() ?>css/style_common.css" />
                <link rel="stylesheet" type="text/css" href="<?= base_url() ?>css/style5.css" />
                <link rel="stylesheet" type="text/css" href="<?= base_url() ?>css/jquery.fancybox.css?v=2.1.5" media="screen" />
                <script type="text/javascript" src="<?= base_url() ?>js/jquery-1.10.1.min.js"></script>
                <script type="text/javascript" src="<?= base_url() ?>js/jquery.fancybox.js?v=2.1.5"></script>
                <script type="text/javascript">
                    $(document).ready(function () {

                        $('.fancybox').fancybox();


                    });
                </script>
                </head>
                <body>
                    <div id="wrapper">
                        <!--banner starts here-->
                        <div class="sub-banner-wrapper">
                            <div class="sub-banner"> <img src="<?= base_url() ?>images/sub-banner-4.jpg" /> </div>
                            <div class="transperant-layer">
                                <div class="sub-banner-captions">
                                    <h2>Words fuelling us to <span>serve better!</span></h2>
                                     <p>See comments from our esteemed clients that testifies our excellence, professionalism and commitment. </p>
                                </div>
                            </div>
                        </div>
                    </div>
                    <!--banner ends here-->
                    <div class="clear"></div>
                    <div class="contentarea-main">
                        <div class="content-area-inner">
                            <div class="destination-main">
                                <!--destinations introduction starts here-->
                                <div class="destination-introduction">
                                    <div class="destination-heading">
                                        <h1>Our <span> Testimonials </span></h1>
                                    </div>
                                    <div class="clear"></div>
                                </div>
                                <div class="testimonials-page-main">
                                        
                                    <div class="testimonials-box-area" id="containerid">
                                        <?php $i=0;foreach($testimonials as $test){?>
                                        <div class="<?php if($i%2 == 0){echo 'testi-client';}else{echo 'testi-client no-right-margin';}?>">
                                            <?php if(!empty($test['testimonials_image'])){?>
                                            <div class="testi-blue-bg">
                                                <div class="client-round"><img src="<?= base_url()?>uploads/testimonials/thumb/<?= $test['testimonials_image']?>" /></div>
                                            </div>
                                            <div class="client-note">
                                                <p><?= word_limiter($test['testimonials_content'],62);?></p>
                                                <p><span><?= $test['testimonials_name'];?>,</span> <?= $test['testimonials_title'];?></p>
                                            </div>
                                            <?php }else{?>
                                            <div class="client-note">
                                                <p style="width: 440px;"><?= word_limiter($test['testimonials_content'],62);?></p>
                                                <p><span><?= $test['testimonials_name'];?>,</span> <?= $test['testimonials_title'];?></p>
                                            </div>
                                            <?php }?>
                                        </div>
                                            
                                        <?php $i++;}?>
                                    </div>

                                </div>
                                <div class="pagenintaion-counter">
                                    <ul id="pagination-div-id">
                                        <?php echo $this->pagination->create_links();?>
                                    </ul>
                                </div>
                            </div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                        </div>
                    </div>
                    <div class="clear"></div>
                    </div>
                </body>
                </html>

谁能帮我解决这个问题...

谢谢你..

最佳答案

使用jquery Datatable插件和Datatable库,可以轻松实现ajax网格刷新、分页、异步搜索和排序。

引用以下链接 http://www.datatables.net/examples/data_sources/server_side.html https://github.com/IgnitedDatatables/Ignited-Datatables/

关于php - 需要在 codeigniter 中使用 ajax 分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28555122/

相关文章:

php - 使用 openssl 解密 mcrypt

javascript - 我可以在 asp.net-mvc 3 中的 @Ajax.Actionlink 中传递 Javascript 变量吗?

Ajax 正确返回并显示数据,但正在激活错误消息

jQuery 如果 DIV 没有类 "x"

jquery - 内联列表菜单无法正常工作

jquery 幻灯片 - slideToggle

c# - ASP.NET 高效聊天应用程序方法

javascript - Angular.js + PHP : angular expression not executed if inside a ngSanitized html template

php - 使用 where in 条件从表中获取最新的 N 条记录

php - 如何修复 App\Http\Controllers\FilesController::uploadAttachments() 缺少参数 3