【问题标题】:simplePagination.js not working for php MySQL database searchsimplePagination.js 不适用于 php MySQL 数据库搜索
【发布时间】:2018-05-04 04:48:54
【问题描述】:

使用表单在 header.php 文件中创建对 MySQL 数据库的 php 搜索。 尝试将 simplePagination.js 与 php 一起使用。我能够正确计算结果数量并显示适当数量的页面链接。但是search.php并没有限制页面的条目数,所有的分页链接都指向一个空白页面。

 <form action="search.php" method="POST">
        <input type="text" name="search" placeholder="search site">
        <button type="submit" name="submit-search"><img src="../assets/search icon-05.png"></button>
</form>

search.php 代码:

<?php
include 'header.php';
?>
<section class="searchPage">
<div class="searchResults">
    <?php
        if (isset($_POST['submit-search'])){
            $searchTerm = trim( (string) $_POST['search'] );

            if (isset( $searchTerm[0] )) {
                $search = mysqli_real_escape_string($conn, $_POST['search']);
                $sql = "SELECT * FROM articles WHERE title LIKE '%$search%' OR abstract LIKE '%$search%' OR keywords LIKE '%$search%'";
                $result = mysqli_query($conn, $sql);
                $queryResult = mysqli_num_rows($result);
                $limit = 10;
                $numberOfPages = ceil($queryResult/$limit);

                if ($queryResult > 0){
                    echo $queryResult . " results found";

                    while ($row = mysqli_fetch_assoc($result)){
                        echo "<div class='articleItem'>
                            <h2>".$row['title']."</h2>
                            <p>".$row['abstract']."</p>
                            <a href=".$row['link']." target='_blank'>".$row['link']."</a>
                        </div>";
                    }

                    $pageLinks = "<nav><ul class='pagination'>"; 
                    for ($i=1; $i<=$numberOfPages; $i++) {  
                        $pageLinks .= "<li><a href='search.php?page=".$i."'>".$i."</a></li>";  
                    };  
                    echo $pageLinks . "</ul></nav>";  
                }
                else {
                echo "There are no results matching your search.";
            }
            }

        }
    ?>
</div>
</section>
<script type="text/javascript">
 $(document).ready(function(){
        $('.pagination').pagination({
                items: <?php echo $queryResult;?>,
                itemsOnPage: <?php echo $limit;?>,
                currentPage : <?php echo $page;?>,
                hrefTextPrefix : 'search.php?page='
            });
            });
</script>

【问题讨论】:

  • 您应该尝试自行调试。你会从中学到更多!此外,请务必查看为您的查询准备好的语句......所以您不会对 sql 注入开放(mysqli_real_escape_string 仍然有效,但有一些边缘情况它不会完全停止)。

标签: javascript php mysql search pagination


【解决方案1】:

您不需要自己创建页面链接,因为这是插件通过 JavaScript 事件执行的操作。因此,您可以将 ul 替换为 div 元素。这就是您得到空白页的原因。

echo "<nav><div class='pagination'></div></nav>";

以下是我为使其工作而添加的内容:

$(document).ready(function(){
var pageParts = $(".articleItem");
pageParts.slice(<?php echo $limit;?>).hide();
$('.pagination').pagination({
        items: <?php echo $queryResult;?>,
        itemsOnPage: <?php echo $limit;?>,
        onPageClick: function(pageNum) {
            var start = <?php echo $limit;?> * (pageNum - 1);
            var end = start + <?php echo $limit;?>;
            pageParts.hide().slice(start, end).show();
        }
}); 

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 2014-05-26
    相关资源
    最近更新 更多