Intereting Posts
Насколько безопасна функция завитки от обнюхивания? Расширение 7z для php? Динамически отображать CSV-файл в виде таблицы HTML на веб-странице Ajax-вызов успешный, но не может получать значения радио от $ _POST Различные стили CSS для последнего элемента php-массива Pt.2 Сессия теряется после перенаправления OAuth Нечетные разрешения для файла, измененного PHP move_uploaded_file () Как вызвать функцию codeigniter controller без URL без индекса Заменить диакритические символы «эквивалентным» ASCII в PHP? Ошибка исключения Laravel – массовое присвоение Laravel как добавить новое поле в результат запроса Как правильно деактивировать данные, полученные из текстовой области, при ее возврате в текстовую область? Удалите пустые элементы массива с помощью array_filter с функцией обратного вызова Лучший способ выполнить сценарий экспорта javascript и php csv Обработка связей при ранжировании от наивысшего до самого низкого

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; 

Какие-либо предложения?

Вместо того, чтобы перемещать выбранный элемент в начало списка, почему бы не попробовать использовать 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> 

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