跨多个页面存储选择/下拉值


Storing Select/Dropdown Value across multiple pages

我正在制作一个新网站来学习编码,并为搜索应用程序制作每页的结果。所以基本上,我有一个选择/下拉列表,看起来像这样:

 <form name='form1' method='post'>
       <font style="font-size:12px;">Results per Page:</font>
       <select name='select' onChange='document.form1.submit()'>
              <option value='10'<?php if($pagesnum == 10) {echo "selected='selected'";} ?>>10</option>
              <option value='15'<?php if($pagesnum == 15) {echo "selected='selected'";} ?>>15</option>
          <option value='20'<?php if($pagesnum == 20) {echo "selected='selected'";} ?>>20</option>
          <option value='25'<?php if($pagesnum == 25) {echo "selected='selected'";} ?>>25</option>
      </select>
</form>

这只是获取用户每页所需的结果数量,一旦他们更改了选择/下拉列表,页面就会刷新。然后,我将用户每页的结果数据存储到一个名为$pagesnum的变量中,或者如果没有设置每页的结果,只需像这样将$pagesnam设置为10(它位于页面的最顶部:

if ($_REQUEST['select'] != null){ $pagesnum = $_REQUEST['select'];}else{$pagesnum = 10;}

然后,在我的分页中(如果你需要的话,我可以在这里发布),使每页的总结果或$totalpages等于$pagesnum,如下所示:

$total_pages = $pagesnum;

我的问题是,我有一个Refine Search,它建议链接到Search.php等页面的相关搜索词?q=A+链接+That+是+A+不同+页面,$pagesnum的值丢失。如何获得用户设置为$pagesnum的内容,并在多个页面上进行设置?

请看一下PHP会话,这里有一个如何在您的案例中应用它的示例。

session_start();
if(!empty($_REQUEST['select'])){
  $pagesnum = $_REQUEST['select'];
  $_SESSION['pagesnum'] = $pagesnum;
}else{
  $pagesnum = $_SESSION['pagesnum'];
}

你可以使用上面的代码而不是这个

if ($_REQUEST['select'] != null){ $pagesnum = $_REQUEST['select'];}else{$pagesnum = 10;}

如果您有多选下拉,您可以考虑在会话中存储数组

否则,一个会话变量就足够了

http://www.phpriot.com/articles/intro-php-sessions/7