Mysql
 sql >> база данни >  >> RDS >> Mysql

Пагиниране на записи по проблем от страна на клиента

Както е посочено в моите коментари.

Можете да направите следното:

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

Горното ще повтори, че щракнете върху всяка от връзките за пагинация.

Това, което бих посъветвал да направите след това, е да разделите PHP кода и HTML, който генерира вашия списък с "резултати" в отделен файл.

По този начин на страницата, която показва резултатите, можете просто да използвате include('path-to-results-file.php'); което ще работи за заявки без ajax и тогава можете да направите:

Process.php

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

Горното ще открие дали е направена ajax заявка и ако е така, вместо да показва цялата страница, включително резултатите, просто ще покаже само резултатите и пагинацията.

Актуализирано, за да включва по-добро обяснение

По-долу е МНОГО прост пример за това, което имам предвид.

Текущ процес.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>

Нов 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>

Нов 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>

Сега... Когато отидете на process.php обикновено през вашия браузър или когато JavaScript е деактивиран. Той просто ще работи по същия начин, както без Javascript сега.

Когато отидете на process.php и след това щракнете върху една от връзките за пагинация (с активиран javascript), process.php ще открие, че използвате Ajax, и ще изпрати обратно таблицата с резултатите.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да избегнем превишаването на времето за изчакване при заключване.?

  2. mysql_real_escape_string и array_map връщат празни низове?

  3. Как мога да се свържа с MySQL на WAMP сървър?

  4. MYSQL тригери:JSON_SEARCH целочислена стойност в json масив от цели числа

  5. Съхранените процедури са забранени в света на php/mysql?