2016-01-11 35 views
0

当用户搜索A B的URL显示A+B在第一页,但在第二页它A%20B, 改变或者如果A&B搜索有A%26B在第一页,但它与A&B在改变第二页。我能做什么在每个下一页都保留相同的符号?PHP分页不同的符号在URL

CODE:

<?php 
$total_pages = $query 

$targetpage = "search.php"; 

$limit = 36; //Items per page 
$page = $_GET['page']; 
if($page) 
    $start = ($page - 1) * $limit; 
else 
    $start = 0; 

    if ($page == 0) $page = 1; 
    $prev = $page - 1; 
    $next = $page + 1; 
    $lastpage = ceil($total_pages/$limit); 
    $lpm1 = $lastpage - 1; 

    $pagination = ""; 
    if($lastpage > 1) 
    { 
     $pagination .= "<div class=\"pagination\">"; 
     //previous button 
     if ($page > 1) 
      $pagination.= "<a href=\"$targetpage?search=$search&submit=submit&page=$prev\">prev</a>"; 
     else 
      $pagination.= "<span class=\"disabled\">prev</span>"; 

     //pages 
     if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up 
     { 
      for ($counter = 1; $counter <= $lastpage; $counter++) 
      { 
       if ($counter == $page) 
        $pagination.= "<span class=\"current\">$counter</span>"; 
       else 
        $pagination.= "<a href=\"$targetpage?search=$search&submit=submit&page=$counter\">$counter</a>";      
      } 
     } 
     elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some 
     { 
      //close to beginning; only hide later pages 
      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=\"$targetpage?search=$search&submit=submit&page=$counter\">$counter</a>";      
       } 
       $pagination.= "..."; 
       $pagination.= "<a href=\"$targetpage?search=$search&submit=submit&page=$lpm1\">$lpm1</a>"; 
       $pagination.= "<a href=\"$targetpage?search=$search&submit=submit&page=$lastpage\">$lastpage</a>";  
      } 
      //in middle; hide some front and some back 
      elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) 
      { 
       $pagination.= "<a href=\"$targetpage?search=$search&submit=submit&page=1\">1</a>"; 
       $pagination.= "<a href=\"$targetpage?search=$search&submit=submit&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=\"$targetpage?search=$search&submit=submit&page=$counter\">$counter</a>";      
       } 
       $pagination.= "..."; 
       $pagination.= "<a href=\"$targetpage?search=$search&submit=submit&page=$lpm1\">$lpm1</a>"; 
       $pagination.= "<a href=\"$targetpage?search=$search&submit=submit&page=$lastpage\">$lastpage</a>";  
      } 
      //close to end; only hide early pages 
      else 
      { 
       $pagination.= "<a href=\"$targetpage?search=$search&submit=submit&page=1\">1</a>"; 
       $pagination.= "<a href=\"$targetpage?search=$search&submit=submit&page=2\">2</a>"; 
       $pagination.= "..."; 
       for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) 
       { 
        if ($counter == $page) 
         $pagination.= "<span class=\"current\">$counter</span>"; 
        else 
         $pagination.= "<a href=\"$targetpage?search=$search&submit=submit&page=$counter\">$counter</a>";      
       } 
      } 
     } 

     //next button 
     if ($page < $counter - 1) 
      $pagination.= "<a href=\"$targetpage?search=$search&submit=submit&page=$next\">next</a>"; 
     else 
      $pagination.= "<span class=\"disabled\">next</span>"; 
     $pagination.= "</div>\n";  
    } 
    ?> 
+0

@Pamblam见编辑的版本代码为 – Misha

+0

保重正确的URL编码参数值插入到URL上下文中,而不是将其留给浏览器。 (请查看PHP手册,了解'urlencode'和'rawurlencode'之间的区别。) – CBroe

回答

0

施工时您的网址您必须手动编码的查询字符串的。当与PHP构建,使用urlencode(),当构建URL与JS使用encodeURIComponent()

PHP实例

$pagination.= "<a href=\"$targetpage?search=".urlencode($search)."&submit=submit&page=1\">1</a>"; 

JS实例

var pagination += "<a href=\"$targetpage?search="+encodeURIComponent(search)+"&submit=submit&page=1\">1</a>"; 
+0

它可以使用PHP方法。只需稍微更改urlencode($ search)而不是url_encode($ search)。谢谢你的帮助。 – Misha

+0

@MishaAbesadze - 感谢您的纠正。很高兴它帮助:) –