Сделайте опцию выбранной на основе $ _GET. Это вообще возможно? - PullRequest
0 голосов
/ 01 апреля 2009

У меня быстрый вопрос.

Можно ли сделать что-то подобное?

Опции генерируются динамически на основе цикла foreach. Я хочу, чтобы цикл остановился там, где $ _GET ['t'] равняется $ k, и выбрал его.

<option value="http://domain.com/<?php print $k; ?>/" <?php if ($k == $_GET['t']) print 'selected'; ?>><?php print $v; ?></option>

По сути, есть способ сделать выбор выделенным / выделенным на основе предоставленного значения $ _GET [t '] в адресной строке. Я попробовал это, и я получил неопределенный индекс: ошибка t.

я что-то упустил?

Большое спасибо.

Ответы [ 4 ]

2 голосов
/ 01 апреля 2009

Вы получаете неопределенную ошибку, потому что "t" отсутствует в вашем запросе $_GET.

убедитесь, что вы вызываете правильный URL-адрес (например, example.com/script.php?t=test)

Убедитесь, что вы проверяете значение (как предлагали другие) с помощью isset($_GET['t'])

1 голос
/ 02 апреля 2009

Вы не должны использовать GET для изменения значений формы на странице. Вы должны использовать POST для этого:)

Таким образом, если кто-нибудь просканирует вашу страницу, он не будет иметь 10 раз одну и ту же страницу только с измененным полем выбора:)

1 голос
/ 01 апреля 2009

Над тем, что заметил Адам, вы тестируете, фактически передавая "t = что-то" в конце? Этот код должен избавиться от ошибки, проверяя, был ли t задан первым:

<option value="http://domain.com/<?php print $k; ?>/" <?php if (isset($_GET['t']) && $k == $_GET['t']) print 'selected="selected"'; ?>><?php print $v; ?></option>
1 голос
/ 01 апреля 2009

Вы почти поняли - xhtml фактически выбран = "selected"

<option value="http://domain.com/<?php print $k; ?>/" <?php if ($k == $_GET['t']) print 'selected="selected"'; ?>><?php print $v; ?></option>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...