【问题标题】:Storing Select/Dropdown Value across multiple pages跨多个页面存储选择/下拉值
【发布时间】:2012-07-25 18:40:39
【问题描述】:

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

 <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+That+is+a+different+page 之类的页面的相关搜索词,并且 $pagesnum 的值丢失了。如何获取用户设置为 $pagesnum 的内容并将其设置为跨多个页面?

【问题讨论】:

    标签: php javascript


    【解决方案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;}
    

    【讨论】:

    • 谢谢,去看看!
    【解决方案2】:

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

    否则只需要一个会话变量就足够了

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

    【讨论】:

      猜你喜欢
      • 2013-09-15
      • 1970-01-01
      • 2017-09-17
      • 2016-05-21
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      相关资源
      最近更新 更多