提交后保持选中的选择框

Keep a Select Box Selected after Submit(提交后保持选中的选择框)
本文介绍了提交后保持选中的选择框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

在我的网站上,用户可以按流派过滤游戏.当用户从选择框中选择一种类型并点击提交时,页面使用 GET 来查看过滤器是什么.现在过滤器工作正常,问题是选择框的选择变为默认选择(即全部".)

On my website, user's are allowed to filter games by Genre. When a user chooses a genre from the select box and hits submit, the page uses GET to see what the filter was. Now the filter works fine, the problem is that the select box's selection goes to the default one (Which says "All".)

我希望在用户提交过滤请求后,选择框将在页面重新加载后保留该选择.

I want it so that after a user submits their filter request, the select box will keep that selection after the page reloads.

我只能想到一种方法来做到这一点,但它需要将 PHP 添加到每个选项中.有没有更简单的方法可以用 PHP 或 jQuery 来做到这一点?

There's only one way I could think of to do this but it would require adding in PHP into every option there is. Are there any simpler ways to go about doing this with PHP or jQuery?

推荐答案

假设你正在做一个完整的表单提交,选择的选项只会对服务器端代码可用,一旦它返回给客户端使用 jQuery 你不会有那个(除非你在表单提交之前尝试使用 cookie,但是 bleh).

Assuming you're doing a full form submit the selected option is only going to be available to the server-side code, once it gets back to the client to use jQuery you won't have that (unless you try to use cookies before the form submit, but bleh).

我会在选项标签中使用 PHP,如果选项与所选选项匹配,则回显 selected="selected".

I'd use PHP in the option tag and echo selected="selected" if the option matches up with the selected option.

如果你想避免大量重复的代码,为什么不做这样的事情:

If you want to avoid a lot of duplicated code why not do something like this:

<select name="test">
<?php
$options = array(1 => 'Option 1', 2 => 'Option 2', 3 => 'Option 3');
foreach ($options as $key => $value) { 
   echo '<option value="' . $key . '"' . ($key == $_GET["test"] ? ' selected="selected"' : '') . '>' . $value . '</option>';
} ?>
</select>

这篇关于提交后保持选中的选择框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)