sql >> Database >  >> RDS >> Mysql

Pagineer records op Client side issue

Zoals vermeld in mijn opmerkingen.

U kunt het volgende doen:

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

Het bovenstaande zal u repliceren door op elk van de pagineringslinks te klikken.

Wat ik vervolgens zou adviseren, is om de PHP-code en HTML die uw lijst met "resultaten" genereert, te scheiden in een apart bestand.

Op deze manier kunt u op de pagina die de resultaten toont eenvoudig include('path-to-results-file.php'); gebruiken wat werkt voor niet-ajax-verzoeken en dan zou je het volgende kunnen doen:

Proces.php

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

Het bovenstaande zou detecteren of een ajax-verzoek is gedaan en zo ja, in plaats van de hele pagina inclusief de resultaten weer te geven, worden alleen de resultaten en de paginering weergegeven.

Bijgewerkt met een betere uitleg

Hieronder is een ZEER eenvoudig voorbeeld van wat ik bedoel.

Huidige 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>

Nieuw proces.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>

Nieuw pad-naar-resultaten-bestand.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... Als je naar process.php . gaat normaal via uw browser, of wanneer javascript is uitgeschakeld. Het werkt nu gewoon op dezelfde manier als zonder Javascript.

Wanneer je naar process.php . gaat en klik vervolgens op een van de pagineringslinks (met javascript ingeschakeld), process.php zal detecteren dat u Ajax gebruikt en alleen de tabel met resultaten terugsturen.




  1. Tel opeenvolgende dubbele waarden in SQL

  2. Meerdere versies van de database maken en implementeren via schema-snapshots

  3. Hoe gebruik ik trapsgewijs verwijderen met SQL Server?

  4. Eén record verwijderen uit Entity Framework?