【问题标题】:How can I set up a simple select form for a user's "items per page" preference?如何为用户的“每页项目”首选项设置一个简单的选择表单?
【发布时间】:2011-11-12 14:34:51
【问题描述】:

我想要一个简单的选择输入框,其中包含几个“每页项目”选项。我想保存新设置(cookie,首选)并在更改时刷新页面。我不需要在不重新加载页面的情况下重置页面上的项目,因此我可以使用 PHP 获取 cookie 并进行相应的限制。

<label>Items per page</label>
<select name="itemsPerPage">
  <option value="10">10</option>
  <option value="25">25</option>
  <option value="50">50</option>
  <option value="100">100</option>
</select>

你能指出我正确的方向吗?我在服务器上运行 PHP,在 javascript 上运行 jQuery。

【问题讨论】:

  • 你使用的是什么服务器端框架?
  • 如果可能的话,我希望 JavaScript 能够处理 cookie 设置。因为我不希望用户必须单击“提交”按钮,而是重置 cookie“onchange”并让 PHP 在刷新时拉取 cookie 首选项。
  • 一般来说,您不希望从您的数据库中获得整个转储。
  • 我同意。我肯定会确保最大值不超过我的数据库连接在负载时可以处理的最大值。这就是你的建议吗?用户可以将他们的 cookie 更改为 9999999?我不担心。他们将获得的最大值是我允许他们获得的最大值。
  • 您是在问如何在 javascript 中创建 cookie 吗?

标签: jquery ajax forms select cookies


【解决方案1】:

这样的事情应该将cookie设置为选择框的值并刷新页面。

您可以在http://plugins.jquery.com/project/Cookie 获取cookie jquery 插件。

$("select[name=itemsPerPage]").change(function(e) {

    $.cookie("itemsPerPage", $(e.target).val());

    window.location.reload();   

});

【讨论】:

    【解决方案2】:

    在我看来,在 PHP 中处理 cookie 要容易得多,因为我发现 javascript cookie 很痛苦。我会这样做:

    javascript:

    $('select [name="itemsPerPage"]').change(function() {
        window.location="/myPage.php?items=" + $(this).val();
    }
    

    PHP:

    if(!empty($_GET['items'])) {
        setcookie("itemsPerPage", $_GET['items']);
    }
    
    $itemsPerPage = (!empty($_COOKIE['items']) ? $_COOKIE['items'] : 10);
    

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多