как использовать класс пагинации, когда некоторые скрипты в контроллере написаны на сыром PHP - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть скрипт для отображения информации базы данных без перезагрузки страницы. Сценарий работает нормально, но проблема в том, что я хочу использовать класс разбиения на страницы кодигнитора здесь, но, поскольку я использовал некоторый сырой PHP в своем контроллере, я не знаю, как это сделать. Не могли бы вы показать мне, как использовать класс пагинации в моем сценарии?

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

У меня есть сценарии ::

Внутри головы

 <script type="text/javascript">

      $(document).ready(function() {
     $("select[name='users']").attr("selectedIndex", 1);
     $("select[name='users']").change(function() {
     var str = $(this).val();

   if( str == "" ) {
        $("#txtHint").html("");
    }
    else {

        $.get("<?php echo base_url(); ?>test/query/"+ str, function(data) { $("#txtHint").html(data) });
    }
   }).change();
  });

</script>

Внутри тела

   <form>
    <select name="users" >
                <option value="">Select a person:</option>
                <option value="11080101">Sumon</option>
                <option value="11080102">Donno</option>

            </select>
</form>
                <br />
        <div id="txtHint"><b>Person info will be listed here.</b></div>

Мой контроллер:

  function query($id){



    $sql="SELECT * FROM attendancein WHERE attendeeid = '$id' ";

                $result = mysql_query($sql);

                echo "<table border='1'>
                <tr>
                <th>date</th>
                <th>In Time</th>
                <th>In Status</th>
                <th>Class Start Time</th>

                </tr>";

                while($row = mysql_fetch_array($result))
                  {
                  echo "<tr>";
                  echo "<td>" . $row['date'] . "</td>";
                  echo "<td>" . $row['intime'] . "</td>";
                  echo "<td>" . $row['instatus'] . "</td>";
                  echo "<td>" . $row['classstarttime'] . "</td>";

                  echo "</tr>";
                  }
                echo "</table>";


                }  

У меня нет модели

Редактировать

    function query($id){
             $sql="SELECT * FROM attendancein WHERE attendeeid = '$id' ";
             $result = mysql_query($sql);        

                             $this->load->library('pagination');
             $config['base_url'] = base_url().'test/srijon';
             $config['total_rows'] = mysql_num_rows($result);
             $config['per_page'] = '20';
             $config['num_links'] = 20;

            $config['full_tag_open'] = '<div class="pagination" align="center">';
            $config['full_tag_close'] = '</div>';

            $this->pagination->initialize($config);



            $sql="SELECT * FROM attendancein WHERE attendeeid = '$id' LIMIT 20, 5";
             $result = mysql_query($sql);

                echo "<table border='1'>
                        <tr>
                        <th>date</th>
                        <th>In Time</th>
                        <th>In Status</th>
                        <th>Class Start Time</th>

                        </tr>";



                while($row = mysql_fetch_array($result))
                        {
                            echo "<tr>";
                            echo "<td>" . $row['date'] . "</td>";
                            echo "<td>" . $row['intime'] . "</td>";
                            echo "<td>" . $row['instatus'] . "</td>";
                            echo "<td>" . $row['classstarttime'] . "</td>";

                            echo "</tr>";
                        }

                        echo "</table>";

             echo "<tr><td>" . $this->pagination->create_links() . "</td></tr>";

         }

1 Ответ

0 голосов
/ 02 ноября 2011

Хорошо, так что это возможно, но вам придется добавить какой-то код.

function query($id){
    $sql="SELECT * FROM attendancein WHERE attendeeid = '$id' ";
    $result = mysql_query($sql);        

    $items_per_page = 5;
    $this->load->library('pagination');
    $config['base_url'] = base_url().'test/query/'.$id.'/';
    $config['total_rows'] = mysql_num_rows($result);
    $config['per_page'] = $items_per_page;
    $this->pagination->initialize($config);

    $current_page = ($this->uri->segment(4) === FALSE ? 0 : intval($this->uri->segment(4))); 
    $offset = $items_per_page * ($current_page - 1);

    $sql="SELECT * FROM attendancein WHERE attendeeid = '$id' LIMIT '$offset', '$items_per_page'";

    $result = mysql_query($sql);

    echo "<table border='1'>
    <tr>
    <th>date</th>
    <th>In Time</th>
    <th>In Status</th>
    <th>Class Start Time</th>

    </tr>";

    echo "<tr><td>" . $this->pagination->create_links() . "</td></tr>"

    while($row = mysql_fetch_array($result))
    {
        echo "<tr>";
        echo "<td>" . $row['date'] . "</td>";
        echo "<td>" . $row['intime'] . "</td>";
        echo "<td>" . $row['instatus'] . "</td>";
        echo "<td>" . $row['classstarttime'] . "</td>";

        echo "</tr>";
    }

    echo "</table>";
}

Я сам не проверял это, но уверен, что он будет работать в любом случае, он даст вам хороший результат.Идея, что вам нужно сделать, чтобы заставить его работать.** Обратите внимание, что 5 можно, вероятно, поместить в переменную, чтобы сделать ее более удобной для обслуживания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...