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

时间:2012-07-25 18:40:40

标签: php javascript

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

 <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的变量中,或者如果未设置每页结果,只需将$ pagesnum设置为10(它位于页面的最顶部:

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

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

$total_pages = $pagesnum;

我的问题是我有一个精确搜索,它建议链接到search.php等页面的相关搜索词?q = A + Link +那个+是+ a +不同的+页面,$ pagesnum的值丢失了。如何获取用户设置为$ pagesnum并将其设置为多个页面的内容?

2 个答案:

答案 0 :(得分:1)

请查看PHP Sessions,以下是您在案例中如何应用此案例的示例。

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;}

答案 1 :(得分:1)

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

否则只是会话变量就足够了

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