sql >> Database teknologi >  >> RDS >> Mysql

Sideinddeling af poster på klientsideproblem

Som nævnt i mine kommentarer.

Du kan gøre følgende:

$(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');
            }
        });
    });
});
 

Ovenstående vil replikere dig ved at klikke på hvert af pagineringslinkene.

Det, jeg vil råde dig til at gøre, er at adskille PHP-koden og HTML, der genererer din "resultat"-liste, i en separat fil.

På denne måde, på siden, der viser resultaterne, kan du blot bruge include('path-to-results-file.php'); som vil fungere for ikke-ajax-anmodninger, og så kan du gøre:

Process.php

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

Ovenstående vil opdage, om der er foretaget en ajax-anmodning, og i så fald vil den i stedet for at vise hele siden inklusive resultaterne blot kun vise resultaterne og sideinddelingen.

Opdateret for at inkludere en bedre forklaring

Nedenfor er et MEGET simpelt eksempel på, hvad jeg mener.

Nuværende proces.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>

Ny process.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>

Ny path-to-results-file.php

<? // 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>

Nu... Når du går til process.php normalt via din browser, eller når javascript er deaktiveret. Det vil simpelthen fungere på samme måde, som det gør uden Javascript nu.

Når du går til process.php og klik derefter på et af pagineringslinkene (med javascript aktiveret), process.php vil opdage, at du bruger Ajax og kun sende resultattabellen tilbage.




  1. Sådan henter du binært billede fra databasen ved hjælp af C# i ASP.NET

  2. Sådan tjekker du datoformatet for din Oracle-session

  3. UNPIVOT mysql-data til anden tabel

  4. Hvordan kalder man en MySQL-lagret procedure fra PHP-kode?