首页 > 解决方案 > 其他页面的搜索结果

问题描述

我创建了一个表,显示我的 mysql 表中的值。然后,使用教程,我创建了分页系统。

页面顶部:

if (isset($_GET['page']) && $_GET['page']!="") {
    $page = $_GET['page'];
    } else {
        $page = 1;
        }

    $total_records_per_page = 10;
    $offset = ($page-1) * $total_records_per_page;
    $previous_page = $page - 1;
    $next_page = $page + 1;
    $adjacents = "2";

    $result_count = mysqli_query(
        $conn,
        "SELECT COUNT(*) As total_records FROM `snapchat`"
        );
        $total_records = mysqli_fetch_array($result_count);
        $total_records = $total_records['total_records'];
        $total_no_of_pages = ceil($total_records / $total_records_per_page);
        $second_last = $total_no_of_pages - 1; 

页面底部:

<nav aria-label="Page navigation example">
  <ul class="pagination justify-content-center">
    <?php // if($page > 1){ echo "<li><a href='?page=1'>First Page</a></li>"; } ?>
    
    <li <?php if($page <= 1){ echo "class='page-item page-link disabled' style='color:black;'"; } ?>>
    <a <?php if($page > 1){ echo "class='page-link' href='?page=$previous_page'"; } ?>>Poprzednia</a>
    </li>
       
    <?php 
    if ($total_no_of_pages <= 10){       
        for ($counter = 1; $counter <= $total_no_of_pages; $counter++){
            if ($counter == $page) {
           echo "<li class='page-item active'><a class='page-link'>$counter</a></li>";  
                }else{
           echo "<li class='page-item'><a class='page-link' href='?page=$counter'>$counter</a></li>";
                }
        }
    }
    elseif($total_no_of_pages > 10){
        
    if($page <= 4) {            
     for ($counter = 1; $counter < 8; $counter++){       
            if ($counter == $page) {
           echo "<li class='page-item active'><a class='page-link'>$counter</a></li>";  
                }else{
           echo "<li class='page-item'><a class='page-link' href='?page=$counter'>$counter</a></li>";
                }
        }
        echo "<li class='page-item'><a class='page-link'>...</a></li>";
        echo "<li class='page-item'><a class='page-link' href='?page=$second_last'>$second_last</a></li>";
        echo "<li class='page-item'><a class='page-link' href='?page=$total_no_of_pages'>$total_no_of_pages</a></li>";
        }

     elseif($page > 4 && $page < $total_no_of_pages - 4) {       
        echo "<li class='page-item'><a class='page-link' href='?page=1'>1</a></li>";
        echo "<li class='page-item'><a class='page-link' href='?page=2'>2</a></li>";
        echo "<li class='page-item'><a class='page-link'>...</a></li>";
        for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) {           
           if ($counter == $page) {
           echo "<li class='page-item active'><a class='page-link'>$counter</a></li>";  
                }else{
           echo "<li class='page-item'><a class='page-link' href='?page=$counter'>$counter</a></li>";
                }                  
       }
       echo "<li class='page-item'><a class='page-link'>...</a></li>";
       echo "<li class='page-item'><a class='page-link' href='?page=$second_last'>$second_last</a></li>";
       echo "<li class='page-item'><a class='page-link' href='?page=$total_no_of_pages'>$total_no_of_pages</a></li>";      
            }
        
        else {
        echo "<li class='page-item'><a class='page-link' href='?page=1'>1</a></li>";
        echo "<li class='page-item'><a class='page-link' href='?page=2'>2</a></li>";
        echo "<li class='page-item'><a class='page-link'>...</a></li>";

        for ($counter = $total_no_of_pages - 6; $counter <= $total_no_of_pages; $counter++) {
          if ($counter == $page) {
           echo "<li class='page-item active'><a class='page-link'>$counter</a></li>";  
                }else{
           echo "<li class='page-item'><a class='page-link' href='?page=$counter'>$counter</a></li>";
                }                   
                }
            }
    }
?>
    
    <li <?php if($page >= $total_no_of_pages){ echo "class='page-item page-link disabled' style='color:black;'"; } ?>>
    <a <?php if($page < $total_no_of_pages) { echo "class='page-link' href='?page=$next_page'"; } ?>>Następna</a>
    </li>
    <?php if($page < $total_no_of_pages){
        echo "<li class='page-item'><a class='page-link' href='?page=$total_no_of_pages'>Ostatnia &rsaquo;&rsaquo;</a></li>";
        } ?>
</ul>
    </nav>

然后我创建了一个搜索引擎(输入),onkeyup="myFunction()"MyFunction 看起来:

function myFunction() {
// Declare variables 
var input, filter, table, tr, td, i;
  input = document.getElementById("myInput");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");

  // Loop through all table rows, and hide those who don't match the search query
  for (i = 0; i < tr.length; i++) {
    td = tr[i].getElementsByTagName("td") ; 
    for(j=0 ; j<td.length ; j++)
    {
      let tdata = td[j] ;
      if (tdata) {
        if (tdata.innerHTML.toUpperCase().indexOf(filter) > -1) {
          tr[i].style.display = "";
          break ; 
        } else {
          tr[i].style.display = "none";
        }
      } 
    }
  }
}

当我尝试搜索某些内容时出现了我的问题 - 它仅从 1 页搜索,而从其他页面则不下载结果。我想让它从所有页面中搜索我。

标签: javascriptphpmysql

解决方案


您需要在后端而不是前端实现搜索,因为您只加载一页而不是所有结果。

假设您当前的链接看起来像http://localhost:8080/table?page=1,您需要对其进行修改,以便将搜索输入的值发送到后端 ex。http://localhost:8080/table?page=1&s=somevalue.

然后您需要将该值传递给SQL脚本并根据结果进行分页。


推荐阅读