Оставьте поле выбора выбранным после отправки - PullRequest
0 голосов
/ 13 января 2010

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

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

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

Ответы [ 3 ]

6 голосов
/ 13 января 2010

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

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

* 1006 Е.Г. *

foreach ($options as $value => $label) {
    echo '<option value="' . $value . '" ' . ($selected == $value ? ' selected' : '') . '>' . $label . '</option>';
}
2 голосов
/ 13 января 2010

Если вы делаете полную форму отправки, выбранная опция будет доступна только для кода на стороне сервера, как только он вернется к клиенту, чтобы использовать jQuery, у вас не будет этого (если вы не попытаетесь использовать куки-файлы перед отправкой формы, но пока нет.

Я бы использовал PHP в теге параметра и вывел бы 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>
1 голос
/ 07 октября 2010

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

$("#$optionId[value=6]").attr('selected','selected');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...