【问题标题】:pagination to work without jquery within this page在此页面中没有 jquery 的分页工作
【发布时间】:2018-01-17 03:13:16
【问题描述】:

我有一个名为 records.php 的页面,它基本上适用于 ajax 分页,但我希望它在没有 ajax 或任何 js 的情况下也能工作,请有人帮忙,我是新手,真的很棒

我不知道从哪里删除这些代码中的哪些 javascript 代码,以便我可以在这个 php 脚本中进行分页,真的希望这里的一些专家可以帮助我

records.php

<?php
    //DB configuration Constants
    define('_HOST_NAME_', 'localhost');
    define('_USER_NAME_', 'root');
    define('_DB_PASSWORD', '');
    define('_DATABASE_NAME_', 'data');

    //PDO Database Connection
    try {
        $databaseConnection = new PDO('mysql:host='._HOST_NAME_.';dbname='._DATABASE_NAME_, _USER_NAME_, _DB_PASSWORD);
        $databaseConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }

    $sqlQuery   = $databaseConnection->query("SELECT * FROM tbl_pagination");
    $count      = $sqlQuery->rowCount();

    $adjacents = 2;
    $records_per_page = 5;

    $page = (int) (isset($_POST['page_id']) ? $_POST['page_id'] : 1);
    $page = ($page == 0 ? 1 : $page);
    $start = ($page-1) * $records_per_page;

    $next = $page + 1;    
    $prev = $page - 1;
    $last_page = ceil($count/$records_per_page);
    $second_last = $last_page - 1; 


    $pagination = "";
    if($last_page > 1){
        $pagination .= "<div class='pagination'>";
        if($page > 1)
            $pagination.= "<a href='javascript:void(0);' onClick='change_page(1);'>&laquo; First</a>";
        else
            $pagination.= "<span class='disabled'>&laquo; First</span>";

        if ($page > 1)
            $pagination.= "<a href='javascript:void(0);' onClick='change_page(".($prev).");'>&laquo; Previous&nbsp;&nbsp;</a>";
        else
            $pagination.= "<span class='disabled'>&laquo; Previous&nbsp;&nbsp;</span>";   

        if ($last_page < 7 + ($adjacents * 2))
        {   
            for ($counter = 1; $counter <= $last_page; $counter++)
            {
                if ($counter == $page)
                    $pagination.= "<span class='current'>$counter</span>";
                else
                    $pagination.= "<a href='javascript:void(0);' onClick='change_page(".($counter).");'>$counter</a>";     

            }
        }
        elseif($last_page > 5 + ($adjacents * 2))
        {
            if($page < 1 + ($adjacents * 2))
            {
                for($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
                {
                    if($counter == $page)
                        $pagination.= "<span class='current'>$counter</span>";
                    else
                        $pagination.= "<a href='javascript:void(0);' onClick='change_page(".($counter).");'>$counter</a>";     
                }
                $pagination.= "...";
                $pagination.= "<a href='javascript:void(0);' onClick='change_page(".($second_last).");'> $second_last</a>";
                $pagination.= "<a href='javascript:void(0);' onClick='change_page(".($last_page).");'>$last_page</a>";   

           }
           elseif($last_page - ($adjacents * 2) > $page && $page > ($adjacents * 2))
           {
               $pagination.= "<a href='javascript:void(0);' onClick='change_page(1);'>1</a>";
               $pagination.= "<a href='javascript:void(0);' onClick='change_page(2);'>2</a>";
               $pagination.= "...";
               for($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
               {
                   if($counter == $page)
                       $pagination.= "<span class='current'>$counter</span>";
                   else
                       $pagination.= "<a href='javascript:void(0);' onClick='change_page(".($counter).");'>$counter</a>";     
               }
               $pagination.= "..";
               $pagination.= "<a href='javascript:void(0);' onClick='change_page(".($second_last).");'>$second_last</a>";
               $pagination.= "<a href='javascript:void(0);' onClick='change_page(".($last_page).");'>$last_page</a>";   
           }
           else
           {
               $pagination.= "<a href='javascript:void(0);' onClick='change_page(1);'>1</a>";
               $pagination.= "<a href='javascript:void(0);' onClick='change_page(2);'>2</a>";
               $pagination.= "..";
               for($counter = $last_page - (2 + ($adjacents * 2)); $counter <= $last_page; $counter++)
               {
                   if($counter == $page)
                        $pagination.= "<span class='current'>$counter</span>";
                   else
                        $pagination.= "<a href='javascript:void(0);' onClick='change_page(".($counter).");'>$counter</a>";     
               }
           }
        }
        if($page < $counter - 1)
            $pagination.= "<a href='javascript:void(0);' onClick='change_page(".($next).");'>Next &raquo;</a>";
        else
            $pagination.= "<span class='disabled'>Next &raquo;</span>";

        if($page < $last_page)
            $pagination.= "<a href='javascript:void(0);' onClick='change_page(".($last_page).");'>Last &raquo;</a>";
        else
            $pagination.= "<span class='disabled'>Last &raquo;</span>";

        $pagination.= "</div>";       
    }


$records    = $databaseConnection->query("SELECT * FROM tbl_pagination LIMIT $start, $records_per_page");
$count      = $records->rowCount();
$HTML='';
if($count > 0)
{
    foreach($records as $row) {
        $HTML.='<div>';
        $HTML.= $row['first_name'];
        $HTML.='</div><br/>';
    }
}
else
{
    $HTML='No Data Found';
}
echo $HTML;
echo $pagination;
?>

【问题讨论】:

    标签: php mysql ajax pdo


    【解决方案1】:

    您需要将 $_POST['page_id'] 更改为 $_GET['page_id'] 以便可以通过查询字符串发送页码。然后您需要从所有页面链接中删除 onClick 事件。对于 HREF,您必须添加带有 page_id 作为查询变量的页面的 url,并将所需的页面作为它的值。像这样的:

    ...
    ...
    $page = (int) (isset($_GET['page_id']) ? $_GET['page_id'] : 1);
    $page = ($page == 0 ? 1 : $page);
    $start = ($page-1) * $records_per_page;
    
    $next = $page + 1;    
    $prev = $page - 1;
    $last_page = ceil($count/$records_per_page);
    $second_last = $last_page - 1; 
    
    
    $pagination = "";
    if($last_page > 1){
        $pagination .= "<div class='pagination'>";
        if($page > 1)
            $pagination.= "<a href='URL_OF_PAGE.php?page=1'  >&laquo; First</a>";
        else
            $pagination.= "<span class='disabled'>&laquo; First</span>";
    
        if ($page > 1)
            $pagination.= "<a href='URL_OF_PAGE.php?page=<?php echo $prev; ?>'  >&laquo; Previous&nbsp;&nbsp;</a>";
        else
            $pagination.= "<span class='disabled'>&laquo; Previous&nbsp;&nbsp;</span>";   
    
        if ($last_page < 7 + ($adjacents * 2))
        {   
            for ($counter = 1; $counter <= $last_page; $counter++)
            {
                if ($counter == $page)
                    $pagination.= "<span class='current'>$counter</span>";
                else
                    $pagination.= "<a href='URL_OF_PAGE.php?page=<?php echo $counter; ?>'>$counter</a>";     
    
            }
        }
    
    ...
    ...
    

    【讨论】:

    • 里面有很多不同的 javascript,要如何删除,请分享更多示例对我有很大帮助
    • 你能把我发送的代码部分替换为拳头,让我知道这是否有效吗?确实如此,其他的只是替换链接,我会帮忙的。但请确认该解决方案是否有效。
    • 我现在已经完成了如何更正这部分 $HTML=''; if($count > 0) { foreach($records as $row) { $HTML.='
      '; $HTML.= $row['postTitle']; $HTML.='

      '; } } else { $HTML='未找到数据'; } 回声 $HTML;回声$分页;
    • 假设你计算$start$records_per_page的所有逻辑都是正确的,我认为这里不需要改变。
    • 感谢您的指导,我设法使它现在可以工作了 yippie :)
    猜你喜欢
    • 2013-08-15
    • 1970-01-01
    • 2015-09-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    相关资源
    最近更新 更多