На моем сайте пользователю разрешено фильтровать игры по жанру. Когда пользователь выбирает жанр из окна выбора и отправляет запросы, страница использует GET, чтобы узнать, что такое фильтр. Теперь фильтр работает нормально, проблема в том, что выбор блока выбора идет по умолчанию (который говорит «Все».)
Я хочу, чтобы после того, как пользователь отправил свой запрос на фильтрацию, окно выбора сохранит этот выбор после перезагрузки страницы.
Есть только один способ, который я мог бы придумать, но это потребует добавления в PHP всех вариантов. Есть ли более простые способы сделать это с помощью PHP или jQuery?
Предполагая, что вы делаете полную форму, выбранный вариант будет доступен только для кода на стороне сервера, как только он вернется к клиенту для использования 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 ( 'выбран', 'выбран').