php - codeIgniter 分页 - 不会转到搜索结果的下一个链接

标签 php codeigniter pagination

我正在为搜索结果使用分页。搜索工作完美。搜索后显示前 10 条记录。但是,当我单击下一步按钮时,一切都消失了,并显示了一个空白页面。

如果我的代码中可能有任何错误,我们将不胜感激。

型号

function search_bookings($time, $title, $payment, $start_date, $end_date,$limit, $start, $type) {

        $this->db->select('reservations.*');
        $this->db->from('reservations');
        $this->db->where('is_deleted', '0');
        $this->db->order_by('date_cal',"desc");

         if (!empty($time) && !is_null($time)) {
            $this->db->where('reservations.type', $time);
        }
        if (!empty($payment) && !is_null($payment)) {
            $this->db->where('reservations.advanced_payment_status', $payment);
        }

        if (!empty($title) && !is_null($title)) {
            $this->db->where('reservations.title', $title);
        }

        if (!empty($start_date) && !is_null($start_date)) {
            $this->db->where('reservations.date_cal >=', $start_date);
            $this->db->where('reservations.date_cal <=', $end_date);
        }

         if ($type == 'half') {
            $this->db->limit($limit, $start);
        }
        $query = $this->db->get();
        return $query->result();
    }

Controller

 function search_reservations($start = 0) {
        $reservation_service = new Reservation_service();
        $config = array();

        $config["base_url"] = site_url() . "/dashboard/manage_bookings/";
        $config["per_page"] = 10;
        $config["uri_segment"] = 4;
        $config["num_links"] = 4;

        $time = $this->input->post('type', TRUE);
        $title = $this->input->post('title', TRUE);
        $payment = $this->input->post('payment', TRUE);
        $date_from = $this->input->post('date_from', TRUE);
        $date_to = $this->input->post('date_to', TRUE);
        $searched_results = $reservation_service->search_bookings($time, $title, $payment, $date_from, $date_to, $config["per_page"], $start, 'half');
        $data['search_results'] = $searched_results;
        $config["total_rows"] = count($reservation_service->search_bookings($time, $title, $payment, $date_from, $date_to, $config["per_page"], 0, 'all'));
        $this->pagination->initialize($config);

        $data["links"] = $this->pagination->create_links();

        $this->load->view('body_pages/search_results', $data);
    }

搜索结果 View

<table  class="display table table-bordered table-striped" id="bookings_table">
    <thead>
        <tr>
            <th>#</th>
            <th>Date</th>
            <th>Hall</th>
            <th>Time</th>                               
            <th>Actions</th>
        </tr>
    </thead>
    <tbody>
        <?php
        $i = 0;
        foreach ($search_results as $result) {
            ?>
            <tr id="bookings_<?php echo $result->id; ?>">
                <td><?php echo ++$i; ?></td>
                <td><?php echo $result->date_cal; ?></td>
                <td><?php if ("RP" == $result->title) { ?><?php
                        echo "Royal Princess Ballroom (Downstairs)";
                    }
                    ?>
                    <?php if ("GK" == $result->title) { ?><?php
                        echo "Grand Kings Ballroom (Upstairs)";
                    }
                    ?>
                </td>
                <td><?php echo $result->type; ?></td>  
                <td align="center">    
                    <a class="btn btn-primary btn-xs" onclick="display_edit_reservation_pop_up(<?php echo $result->id; ?>)"><i class="fa fa-pencil"  title="Update"></i></a>
                    <a class="btn btn-danger btn-xs" onclick="delete_bookings(<?php echo $result->id; ?>)" ><i class="fa fa-trash-o " title="Remove"></i></a>
                </td>
            </tr>
        <?php } ?>

    </tbody>

</table>

<div class="pagination">
    <?php echo $links; ?>
</div>                                          

最佳答案

嘿嘿,请找到下面带有分页类的 Controller 代码

/* start code of pagination */
        $config                     = array();
        $config["base_url"]         = base_url()."cms/manage_cms";
        if (count($_GET) > 0) $config['suffix'] = '?' . http_build_query($_GET, '', "&");
        if (count($_GET) > 0) $config['first_url'] = $config['base_url'].'?'.http_build_query($_GET);
        $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
        //$page = 0;
        $config["total_rows"]       = count($this->mdl_cms->getAllCmsByCondition($searchindex,$orderField,$orderby,$rowsPerPage,$page,false));

        if($config["total_rows"] < $rowsPerPage){
            $page = 0;
        }
        $config["per_page"]         = $rowsPerPage;
        //$config["uri_segment"]      = 3;
        $config['full_tag_open']    = '<div class="pagination"><ul>';
        $config['full_tag_close']   = '</ul></div><!--pagination-->';

        $config['first_link'] = '&laquo; First';
        $config['first_tag_open'] = '<li class="prev page">';
        $config['first_tag_close'] = '</li>';

        $config['last_link'] = 'Last &raquo;';
        $config['last_tag_open'] = '<li class="next page">';
        $config['last_tag_close'] = '</li>';

        $config['next_link'] = 'Next &rarr;';
        $config['next_tag_open'] = '<li class="next page">';
        $config['next_tag_close'] = '</li>';

        $config['prev_link'] = '&larr; Previous';
        $config['prev_tag_open'] = '<li class="prev page">';
        $config['prev_tag_close'] = '</li>';

        $config['cur_tag_open']     = '<li class="active"><a href="">';
        $config['cur_tag_close']    = '</a></li>';
        $config['num_tag_open']     = '<li class="page">';
        $config['num_tag_close']    = '</li>';

        $this->pagination->initialize($config);  // Load pagination class 


        $usersArr = $this->mdl_cms->getAllCmsByCondition($searchindex,$orderField,$orderby,$rowsPerPage,$page,true); 
        //echo $this->db->last_query(); //die;
        $data["links"] = $this->pagination->create_links(); // Create pagination links

希望对你有用

关于php - codeIgniter 分页 - 不会转到搜索结果的下一个链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31242238/

相关文章:

php - 使用 DQL 查询返回外键

php - Mysql:选择指定点之间的所有数据

php - GROUP BY 与事件记录?

java - 使用 spring-data-jpa 中的 PagingAndSortingRepository 获取所有记录

php - yii\base\ErrorException - 找不到类 'app\controllers\EntryForm'

php - InfusionSoft API 主要来源

javascript - 按 child 排序时使用 startAt() 进行分页

java - Mongo - Java - 获取所有文档将字符串日期排序为日期

php - codeigniter 3 - 删除 index.php : error 404 on linux but work fine on windows

codeigniter - 加拿大邮政从加拿大到美国的运输方式