2014-02-13 184 views
0

現在我試圖讀取其他代碼並使其工作,因爲我有一些項目是由其他開發人員製作的,而且我真的必須學習閱讀其他代碼,我已經做這一個工作,但問題是,當我嘗試將此分頁代碼合併到一個$ _GET變量發生錯誤,當它加載第一頁時,一切都很順利,但當我點擊$ _GET變量的其他頁面時死亡。我已經在網站上找到了一個代碼,但我無法真正瞭解如何將它與其他代碼結合起來。

這裏是「可能」解決問題solving pagination $_GET

printf('<a href="%s?%s">Next</a>',$targetpage,http_build_query(array('page' => 2) + $_GET)); 

代碼在這裏是使鏈接1 2 3 4碼的一部分。 。等等

$range = 3; 

// if not on page 1, don't show back links 
if ($currentpage > 1) { 
    // show << link to go back to page 1 
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1?srId=$srdd'><<</a> "; 
    // get previous page num 
    $prevpage = $currentpage - 1; 
    // show < link to go back to 1 page 
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage?srId=$srdd'><</a> "; 
} // end if 

// loop to show links to range of pages around current page 
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) { 
    // if it's a valid page number... 
    if (($x > 0) && ($x <= $totalpages)) { 
     // if we're on current page... 
     if ($x == $currentpage) { 
     // 'highlight' it but don't make a link 
     echo " [<b>$x</b>] "; 
     // if not current page... 
     } else { 
     // make it a link 
     echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x?srId=$srdd'>$x</a> "; 
     } // end else 
    } // end if 
} // end for 

// if not on last page, show forward and last page links   
if ($currentpage != $totalpages) { 
    // get next page 
    $nextpage = $currentpage + 1; 
    // echo forward link for next page 
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage?srId=$srdd'>></a> "; 
    // echo forward link for lastpage 
    //echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages?srId=$srdd'>>></a> "; 

    printf("<a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages?srId=$srdd'>>></a>"); 
} // end if 
/****** end build pagination links ******/ 
?> 
+0

看看會議。 – Jonast92

+0

你的意思是會話變量?因爲當你點擊下一個鏈接時,使用$ _GET變量傳遞一個變量$ _GET變量變爲空,所以$ _SESSION變量我已經研究了它的性質並且實際上已經編碼了它,所有其他建議謝謝。 – user3287181

回答

0

您將需要使用會話變量或cookie來將它們傳遞給另一個頁面。

假設您發送GET請求並且可以在URL中看到,$ _GET全局數組將會成爲每個新頁面的NEW數組。

一般來說,網絡是無狀態的,這意味着它不會記住你從一個頁面到另一個頁面所做的事情,除非你使用cookies,會話或數據庫進行持久化。

設計你的鏈接

Page 1 | 2 | 3 | 4 

有在鏈接的信息,以便他們準備下一個頁面

Page 1 = http://url?page=1&page_limit=25 
Page 2 = http://url?page=2&page_limit=25 
... 
Etc 

如果分頁鏈接都是這種格式,這些變量將在$ _GET數組。

+0

我想他主要是希望URL在下一頁 – Frithjof

0

我已經想通了的傢伙,我看到很多在網絡上這個問題,也有一些在論壇上這裏是如何解決這個問題

<?php 
    session_start(); 
    // store session data 
    if (isset($_GET["srId"])) 
    { 
     $_SESSION['variable']=$_GET["srId"]; 
     $srdd = $_SESSION['variable']; 
    } 
else 
{ 
    $srdd = $_SESSION['variable']; 
    $tableName = $srdd."r"; 
} 
    ?> 

感謝您的答覆傢伙。

0

嘗試

echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1&srId=$srdd'><<</a> "; 

更換

echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1?srId=$srdd'><<</a> "; 

初始後 '?'在一個網址中,以下*'$ _ GET []'*項目應與前一項分開,並使用'&'。請注意,您的'srId = $ srdd'前面有一個'?'

例子:

myurl.com?id=1234 &頁=幫助

這樣做,這樣會幫助你避免存儲$ _SESSION數組中的信息,並保持URL的安全。

+0

上包含GET值,謝謝@dismer,我還想出了使用isset解決它的另一種方法。 – user3287181

+0

只是單挑,這種方法會使數據內存不足。 – dsimer