2012-10-05 64 views
1

所以我有一些MySQL中的數據顯示在我的PHP頁面內的表中。我已經設置好了,每個頁面只顯示3個結果(臨時直到它啓動,然後會更多)。一切正常,它顯示在每個頁面上的3個結果就好。覆蓋PHP變量並記住它

我想要做的就是能夠從主PHP頁面直接更改每個頁面上的結果數量。我可以更改該頁面上顯示的金額,但只要進入第2頁,就會重置爲3個結果。我怎樣才能記住存儲在變量中的數字,並將其顯示在每個頁面上?我嘗試了使用SESSIONS,但我無法使它工作。我仍然是一個初學者btw。

$item = $_REQUEST['item']; 
if(isset($_REQUEST['item'])){ 
    $limit=$item; 
} 
else{ 
    $limit=3; 
} 

//A few lines down -->  

<form action="<?php $_SERVER['REQUEST_URI']?>" method="post"> 
    Items: <input type="text" name="item"> 
    <input type="submit" name"go" value="Go"> 
</form> 
+3

您在會議中遇到了什麼問題? – andrewsi

+0

Web開發是「無狀態」的會話可能是您正在尋找的解決方案。假設您希望爲結果編號下拉,用戶可以選擇該值。會話將最有可能用來堅持這個價值。實際分配或者被存儲在會話中或綁定到會話並存儲在數據庫中...或者可以執行代碼似乎建議的內容,繼續對每個後續請求採用當前的「限制」。事情就在那裏,它不會真正'堅持'你想要的方式。 – ficuscr

+0

我無法讓他們工作。它不會改變,只會停留在默認值3. – Envious

回答

1

您可以添加會話中使用這種方式:

$item = $_REQUEST['item']; 
if(isset($_REQUEST['item'])){ 
    $limit=$item; 
    $_SESSION['item_limit'] = $limit; 
} 
else{ 
    // If we find a limit set in the session use that 
    if (!empty($_SESSION['item_limit']) { 
     $limit = $_SESSION['item_limit']; 
    } 
    else { 
     $limit=3; 
    } 
} 
+0

它工作。在發佈這些內容之前,我只是在討論這個會話,並且我在多個頁面中記住了它,但是在設置之後,我無法更改它的值。 所以如果它是3之前,我將它改爲2它會以我想要的方式工作。我不能將它改爲1,但這是問題所在。謝謝。 – Envious

1

如果您不需要下次記住值的用戶訪問的頁面,你可以簡單地輸出$極限值屬性爲「item」輸入。

Items: <input type="text" name="item" value="<?php echo $limit; ?>">