2011-01-28 1 views
0

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

function makeDropDown($page){ 
switch ($page){ 
    case 'uploads': 
     echo '<center><form action="pictures.php" action="get"> 
     <select name="pictype"> 
     <option value="uploads">Uploads</option> 
     <option value="fromweb">From Web</option> 
     <option value="wallpapers">Wallpapers</option> 
     <option value="misc">Miscellaneous</option> 
     </select> 
     <input type="submit" value = "Go!"/> 
     </form></center>'; break; 
    case 'fromweb': 
     echo '<center><form action="pictures.php" action="get"> 
     <select name="pictype"> 
     <option value="fromweb">From Web</option> 
     <option value="uploads">Uploads</option> 
     <option value="wallpapers">Wallpapers</option> 
     <option value="misc">Miscellaneous</option> 
     </select> 
     <input type="submit" value = "Go!"/> 
     </form></center>'; break; 
    case 'wallpapers': 
     echo '<center><form action="pictures.php" action="get"> 
     <select name="pictype"> 
     <option value="wallpapers">Wallpapers</option> 
     <option value="uploads">Uploads</option> 
     <option value="fromweb">From Web</option> 
     <option value="misc">Miscellaneous</option> 
     </select> 
     <input type="submit" value = "Go!"/> 
     </form></center>'; break; 

Любые предложения?

ответ

4

Вместо перемещения выбранного элемента в начало списка, почему бы не попробовать использовать атрибут selected элементов опций. Это приведет к инициализации окна выбора выбранной опцией. просто эхо selected в тот вариант, который соответствует значению $page

function makeDropDown($page){ 
    echo '<center><form action="pictures.php" action="get">'; 
    echo ' <select name="pictype">'; 
    echo '  <option value="uploads"'.(($page=="uploads")? " selected":"").'>Uploads</option>'; 
    echo '  <option value="fromweb"'.(($page=="fromweb")? " selected":"").'>From Web</option>'; 
    echo '  <option value="wallpapers"'.(($page=="wallpapers")? " selected":"").'>Wallpapers</option>'; 
    echo '  <option value="misc"'.(($page=="misc")? " selected":"").'>Miscellaneous</option>'; 
    echo ' </select>'; 
    echo ' <input type="submit" value = "Go!"/>'; 
    echo '</form></center>'; 
} 

Таким образом, если $page=='misc', ваш HTML приведет этот путь

<center><form action="pictures.php" action="get"> 
    <select name="pictype"> 
     <option value="uploads">Uploads</option> 
     <option value="fromweb">From Web</option> 
     <option value="wallpapers">Wallpapers</option> 
     <option value="misc" selected>Miscellaneous</option> 
    </select> 
    <input type="submit" value = "Go!"/> 
</form></center>' 
+0

Именно то, что я искал. Благодаря!! – tim

1

Вы можете попробовать эхо-ки это в конце начала каждый случай:

<script type="text/javascript">document.getElementsByName(name).focus();</script> 

Надеюсь, что это поможет.

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