2012-10-05 65 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; ?>">