我有一个 PHP 页面,可以将数据库中的许多图像回显为 HTML。我有 3 个下拉菜单。
- 排序(最旧/最新)
- 类型(Jpeg 或 GIF)
- 每页图像数量(使用分页)
现在,例如在我的排序下拉菜单中,我有链接到/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/