У меня есть раскрывающаяся навигация, которая выводит пользователя на страницу, выбранную в раскрывающемся списке, когда пользователь нажимает кнопку. У меня есть функция, которая принимает заголовок раздела страницы в качестве параметра и создает новый раскрывающийся список с этой страницей поверх списка, так что каждая страница, на которую вы переходите, останется в центре внимания в раскрывающемся списке. Эта функция представляет собой массивный корпус с множеством повторяющихся кодов, и я знаю, что есть более простой и понятный способ сделать это … У меня просто возникают проблемы с решением проблемы. Вот фрагмент кода, я не буду публиковать весь случай коммутатора:
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;
Какие-либо предложения?
Вместо того, чтобы перемещать выбранный элемент в начало списка, почему бы не попробовать использовать 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>'
Вы можете попробовать повторить это в конце каждого из следующих случаев:
<script type="text/javascript">document.getElementsByName(name).focus();</script>
Надеюсь, это поможет.