2010-06-06 2 views
1

Я пытаюсь использовать php (и, если не php, javascript), чтобы ссылаться на страницу и включать «? Type = foo» или «#foo» в конце ссылки так что, когда загружается связанная страница, она автоматически выбирает конкретную опцию, в зависимости от конца ссылки, из выпадающего меню в форме. Я попытался найти это, но не знаю, как это действие на самом деле называется, но я видел это раньше. Кто-нибудь знает, как добиться этого? Огромное спасибо.Автоматически выбирать опцию из меню выбора со ссылкой

ответ

1

Когда я создал их в прошлом, для простоты использования я просто вставлял выбранное значение в верхнюю часть объекта select, а не просматривал весь список и отмечал выбранный как таковой, когда он встречается.

Предполагая страницу, называется как page.php?theSelectedList=Cougar:

<select name="theSelectList"> 
    <?php 
    if(isset($_GET['theSelectList'])) 
     echo '<option selected="selected">'.$_GET['theSelectList'].'</option>'; 
    ?> 
    <option>Aardvark</option> 
    <option>Baboon</option> 
    <option>Cougar</option> 
    <option>Dog</option> 
    <option>Elephant</option> 
</select> 

В этом случае вариант для Cougar будет отображаться дважды - один раз в верхней части списка, и выбран, и снова дальше вниз в обычном месте. Это может показаться запутанным, но в тех случаях, когда я его использовал, он был довольно интуитивным.

Это хорошо и просто, но я остановлюсь на том, что вышеизложенное потребует немного повторного отжимания, если флажки Option и значения параметра будут разными (например, каждый параметр имеет числовое значение, но текстовая метка.

0

Если параметр находится в <select>, тогда имя, которое вы ищете, является атрибутом selected. Он может применяться к каждому тегу <option>, например: W3Schools.

С помощью этого вы можете просто использовать PHP, если-заявление, например:

<?php 

$options = array('Norway', 'United States', 'Springfield'); 

echo '<select>'; 

foreach($options as $country) { 
    if(array_key_exists('selected', $_GET) && $_GET['selected'] === $country) { 
     echo '<option selected="selected">'.$country.'</option>'; 
    } 
    else { 
     echo '<option>'.$country.'</option>'; 
    } 
} 

echo '</select>'; 

Если запрос ?country=Norway то Норвегия будет выбран при загрузке страницы.

Конечно, это можно решить, используя javascript.

+0

Что mq.chen говорит почти правильно: строка запроса должна была бы сказать «? selected = Norway», например, если вышеприведенный код должен был работать. – Sarhanis

+0

Я вопиюще упустил это! код для учета этого сейчас. – mqchen

Смежные вопросы