Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Catatan paginasi pada masalah sisi Klien

Seperti yang dinyatakan dalam komentar saya.

Anda dapat melakukan hal berikut:

$(document).ready(function()
{
    $('.paginate').live('click', function(e)
    {
        e.preventDefault();
        var btnPage = $(this);
        $.ajax(
        {
            url : btnPage.attr('href'),
            success : function(resp)
            {
                // replace current results with new results.
                $('#project_section').html(resp);
            },
            error : function()
            {
                window.location.href = btnPage.attr('href');
            }
        });
    });
});

Di atas akan meniru Anda mengklik setiap link pagination.

Apa yang saya sarankan untuk dilakukan selanjutnya adalah memisahkan kode PHP dan HTML yang menghasilkan daftar "hasil" Anda ke dalam file terpisah.

Dengan cara ini, pada halaman yang menampilkan hasil, Anda cukup menggunakan include('path-to-results-file.php'); yang akan berfungsi untuk permintaan non-ajax dan kemudian Anda dapat melakukan:

Process.php

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
    include('path-to-results-file.php');
    die();
}

Di atas akan mendeteksi jika permintaan ajax telah dibuat dan jika demikian, alih-alih menampilkan seluruh halaman termasuk hasil, itu hanya akan menampilkan hanya hasil dan pagination.

Diperbarui untuk menyertakan penjelasan yang lebih baik

Di bawah ini adalah contoh yang SANGAT sederhana dari apa yang saya maksud.

Proses saat ini.php

    <?
    // currently contains all of the code required
    // to query the database etc.
?>
<html>
<head>...</head>
<body>
    <!-- header content -->
    <table>
    <?
        // currently contains all of the code required to display
        // the results table and pagination links.
    ?>
    </table>
    <!-- footer content -->
</body>
</html>

Proses baru.php

<?
    if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
    {
        include('path-to-results-file.php');
        die();
    }
?>
<html>
<head>...</head>
<body>
    <!-- header content -->
    <? include('path-to-results-file.php'); ?>
    <!-- footer content -->
</body>
</html>

Jalur-ke-hasil-file.php baru

<?
    // currently contains all of the code required
    // to query the database etc.
?>
<table>
<?
    // currently contains all of the code required to display
    // the results table and pagination links.
?>
</table>

Sekarang... Ketika Anda pergi ke process.php biasanya melalui browser Anda, atau ketika javascript dinonaktifkan. Ini hanya akan bekerja dengan cara yang sama tanpa Javascript sekarang.

Ketika Anda pergi ke process.php lalu klik salah satu tautan pagination (dengan javascript diaktifkan), process.php akan mendeteksi bahwa Anda menggunakan Ajax dan hanya mengirim kembali tabel hasil.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penggabungan string NHibernate / MySQL

  2. Erlang emysql iPhone Emoji Encoding Masalah

  3. Mengonversi waktu AM/PM menjadi format 24 jam menggunakan PHP atau MySQL?

  4. SQL meminta beberapa tabel, dengan beberapa gabungan dan bidang kolom dengan daftar yang dipisahkan koma

  5. Bagaimana cara meningkatkan Query MySQL ini menggunakan join?