Сохранить выбранную ячейку после отправки

На моем сайте пользователю разрешено фильтровать игры по жанру. Когда пользователь выбирает жанр из окна выбора и отправляет запросы, страница использует GET, чтобы узнать, что такое фильтр. Теперь фильтр работает нормально, проблема в том, что выбор блока выбора идет по умолчанию (который говорит «Все».)

Я хочу, чтобы после того, как пользователь отправил свой запрос на фильтрацию, окно выбора сохранит этот выбор после перезагрузки страницы.

Есть только один способ, который я мог бы придумать, но это потребует добавления в PHP всех вариантов. Есть ли более простые способы сделать это с помощью PHP или jQuery?

Related of "Сохранить выбранную ячейку после отправки"

Предполагая, что вы делаете полную форму, выбранный вариант будет доступен только для кода на стороне сервера, как только он вернется к клиенту для использования jQuery, у вас его не будет (если вы не попытаетесь использовать файлы cookie до форма submit, но bleh).

Я бы использовал PHP в теге option и echo selected="selected" если опция соответствует выбранному параметру.

Если вы хотите избежать многого дублированного кода, почему бы не сделать что-то вроде этого:

 <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> 

Вы не хотите делать это с помощью jQuery. Там это не для.

Просто имейте опции в массиве в PHP и зацикливайте на нем. Если значение цикла соответствует выбранному в данный момент параметру, просто добавьте selected атрибут.

Например

 foreach ($options as $value => $label) { echo '<option value="' . $value . '" ' . ($selected == $value ? ' selected' : '') . '>' . $label . '</option>'; } 

вы можете сделать это без цикла, просто измените значение 6 на любое значение, которое вы хотите, когда вы создаете страницу

 $ ( "# $ OptionId [значение = 6]") Attr ( 'выбран', 'выбран').