Codeigniter Paginaton Следующая кнопка не работает - PullRequest
1 голос
/ 28 ноября 2011

Я пытаюсь отобразить информацию из базы данных.Я установил $ config ['per_page'] на 2, в моем файле просмотра я могу видеть информацию, которую хочу, но когда я нажимаю на следующую кнопку, это ничего не меняет.Значения базы данных остаются прежними, и текущая страница остается первой страницей.

Не могли бы вы помочь мне разобраться в проблеме?

Заранее спасибо :)

Контроллер:

 function index($id){                   
    $this->load->library('pagination');                                 
    $config['base_url'] = site_url().'Student_fee_status/index/'.$id;

    $this->db->select('*');
    $this->db->from('studentpayment1');
    $this->db->where('studentid', $id); 

    $query = $this->db->get('');
    $numrows=$query->num_rows();                    

    $config['total_rows'] = $numrows;
    $config['per_page'] = 2;
    $config['uri_segment'] = '2'; 
    $config['num_links'] = 20;
    $config['full_tag_open'] = '<div class="pagination" align="center">';
    $config['full_tag_close'] = '</div>';

    $this->pagination->initialize($config);                 
    $this->load->model('Mod_student_fee_status');

    $data['records']= $this->Mod_student_fee_status->fee_status($id,$config['per_page'],$config['uri_segment']);
    $data['main_content']='view_student_fee_status';

    $this->load->view('includes/template',$data);                   
}   

Моя модель:

function fee_status($id,$perPage,$uri_segment) { 
    $this->db->select('*');
    $this->db->from('studentpayment1');
    $this->db->where('studentid', $id); 

    $getData = $this->db->get('', $perPage, $uri_segment);

    if($getData->num_rows() > 0)
        return $getData->result_array();
    else
        return null;
}

РЕДАКТИРОВАТЬ

При первой загрузке страницы ссылка выглядит следующим образом - http://localhost/sundial/Student_fee_status/index/1006/, но когда я нажимаюна следующей странице это выглядит так - http://localhost/sundial/Student_fee_status/index/1006/2

My View File:

<h1>Payment Status</h1>     
<?php if(count($records) > 0) { ?>
    <table id="table1" class="gtable sortable">
        <thead>
            <tr> 
                <th>S.N</th>
                <th>Invoice ID</th>
                <th>Transaction Description</th>
                <th>Received Date</th>
                <th>Debit</th>
                <th>Credit</th>
                <th>Balance</th>
            </tr>
        </thead>

    <?php $i = $this->uri->segment(2) + 0; foreach ($records as $row){ $i++; ?>
        <tbody>
            <?php
                $mydate= $row['period'];
                $month = date("F",strtotime($mydate));
                $year = date("Y",strtotime($mydate));
            ?>
            <tr>
                <td><?php echo $i; ?>.</td>
                <td><?php echo $row['invoiceid'];?></td>
                <td><a href="<?php echo base_url(); ?>student_fee_status/fee_types/<?php echo $row['paymentid']; ?>" rel="1" class="newWindow" >Total Fee For <?php echo $month ;?>, <?php echo $year ;?>  </a></td>
                <td><?php echo $row['received_date'];?></td>
                <td><?php echo $row['totalamount'];?></td>
                <td><?php echo "0";?></td>
                <td><?php echo $row['totalamount'];?></td>
            </tr>
            <tr>
                <td><?php echo $i; ?>.</td>
                <td><?php echo $row['invoiceid'];?></td>
                <td>Payment Received </td>
                <td><?php echo $row['received_date'];?></td>
                <td><?php echo "0";?></td>
                <td><?php echo $row['amountpaid'];?></td>
                <td>
                    <?php
                        $balance=$row['totalamount']-$row['amountpaid']; 
                        if($balance>0){
                            echo "<font color=\"red\">$balance</font>";
                        }
                        else {
                            echo $balance;
                        }
                    ?>
                </td>
            </tr>
    <?php } ?>
        </tbody>
    </table>
<?php } ?>

<div class="tablefooter clearfix">
    <div class="pagination">
        <?php echo $this->pagination->create_links(); ?> 
    </div>                              
</div>

1 Ответ

4 голосов
/ 28 ноября 2011

Вы говорите библиотеке нумерации страниц использовать $config['uri_segment'] = '2'; - второй сегмент вашего URI.

Когда это ваш URL: http://localhost/sundial/Student_fee_status/index/1006/ Я предполагаю, что это ваш base_url: http://localhost/sundial/

В этом случае ваши сегменты:

  1. Student_fee_status - ваш контроллер
  2. index - метод контроллеров, который вы вызываете
  3. 1006 -аргумент, который вы вызываете метод контроллера с
  4. это должен быть аргумент для нумерации страниц

Попробуйте это

$config['uri_segment'] = '4';

вместо

$config['uri_segment'] = '2';

edit :

$data['records']= $this->Mod_student_fee_status->fee_status($id,$config['per_page'],$config['uri_segment']);

Я думаю, что эта строка содержит еще одну ошибку.

Вы передаете своей модели информацию о том, какой uri_segment используется библиотекой пагинации.Это должно быть 4 сейчас.Однако ваша модель использует это значение для указания смещения в вашем запросе.Это означает, что вы всегда ставите смещение 4 в свой запрос.Но я думаю, что вы действительно хотите сделать, передать модели ЗНАЧЕНИЕ 4-го сегмента uri_

Я бы попробовал это вместо этого:

 $data['records']= $this->Mod_student_fee_status->fee_status($id,$config['per_page'],$this->uri->segment($config['uri_segment']));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...