php - 使用 $_GET 和下拉列表传递变量

标签 php sorting get

我有一个 PHP 页面,可以将数据库中的许多图像回显为 HTML。我有 3 个下拉菜单。

  1. 排序(最旧/最新)
  2. 类型(Jpeg 或 GIF)
  3. 每页图像数量(使用分页)

现在,例如在我的排序下拉菜单中,我有链接到/index.php?sort=old 的“最旧”选项

然后,我可以在页面重新加载时获取该变量,并使用选择案例修改我的查询。

现在假设我当前的 URL 是/index.php?sort=old 并且所有项目现在都按从旧到最新的顺序排序。我现在决定还想按文件类型和最旧的进行排序。假设我想选择 Jpeg,我有链接到/index.php?kind=jpeg

的 Jpeg 下拉列表

当点击 jpeg 后刷新页面时,仅发送 kind 变量,而忘记了 sort 变量,因此只留下与排序顺序无关的 jpeg。

我怎样才能做到这一点?

我是否必须修改每个控件上的链接以包含每个其他变量的当前值?

最佳答案

您可以使用普通的 HTML 表单轻松实现这一点:

<form method="GET" action="/index.php">
    <select name="sort">
        <option value="oldest">Oldest</option>
        <option value="newest">Newest</option>
    </select>
    <select name="kind">
        <option value="jpeg">Jpeg</option>
        <option value="gif">GIF</option>
    </select>
    <select name="perpage">
        <option value="10">10</option>
        <option value="20">20</option>
        <option value="50">50</option>
    </select>
    <button type="submit">Submit</button>
</form>

GET 方法意味着它将在 GET 请求中提交表单值,并将它们附加到 URL,就像您当前所做的那样。每当值发生变化时,只需提交表单,就会加载包含所有参数的新 URL。

请注意,这只是一个简化的示例。在现实情况下,您可能希望保留先前在表单中选择的值,如下所示:

<option value="newest" <?php echo(isset($_GET['sort']) && $_GET['sort'] === 'newest' ? 'selected="selected"' : ''); ?>>Newest</option>

关于php - 使用 $_GET 和下拉列表传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41000944/

相关文章:

c++ - 调用自定义排序函数的次数

php - 解析包含另一个 URL 的 URL 中的 GET 请求参数

php - 无法从 PHP 脚本连接 Mysql 服务器

php - 如何在不破坏 MySQL 数据库的情况下跟踪页面浏览量

php - 将 Mongo DB 和集合名称指定为 PHP 中的变量

php - 上传到远程服务器

c++ - 为什么我不能在 btAlignedObjectArray :quicksort? 中使用仿函数作为比较器函数

java - 如何使 Java 中的自定义泛型类型链表排序?

php - 在 XML 页面上使用 cURL 或 Pear (PHP) 的 HTTP_Request

javascript - 使用 .load 传递 $_GET 变量并加载特定页面片段