Как реализовать множество страниц с подвязкой URL?
Здравствуйте. Постараюсь корректнее описать.
Есть тело страницы (admin.php)
Есть верхнее меню.
Как менять тело страницы, выбрав один из пунктов в меню, сохраняя шаблон?
Сделать банальный переключатель show / hide на js - немного не то, учитывая, что главная задумка в том, чтобы не создавать каждую страницу, перейдя по любому URL адресу, соответствующего пункта в меню, подгружалась нужная страница.
Например, href на каждый пункт в меню: #profile, #options, #news
Соответственно, URL будут такими:
При переходе по любому из них, выводилась необходимая информация. Именно необходимая страница открывалась бы не только по нажатию на кнопку в меню, но и просто открыв в URL.
Как подтягивать это все дело?
если вы хотите именно такие ссылки с #, то нет ничего проще - # это якоря блоков с соответствующим id. Т.е. в теле страницы прописываете все возможные разделы, в начале каждого раздела ставите div id="", например id="options" и при переходе по ссылке admin.php#options страница переместится к соответствующему якорю. навигация между разделами так же возможно скроллом.
Андрей Федоров, да, но при этом предыдущий блок должен быть скрыт и показан новый, соответствующего якоря. То есть, выводится что-то одно, остальные скрыты и ждут своего нажатия. Было бы проще, как landing page, но немного по-другому. Исходя из этого, как это правильно реализовать, что выведен блок по умолчанию, а пользователь захотел открыть через URL, не через меню какую-то страницу, как тогда определить, что открыто сейчас или через js скрывать все, получать что в URL, делать сплит и брать только то, что после знака #, прогонять через массив на соответствие между тем, что получили в URL и пунктах в меню, и открывать соответствующий блок?
kickass77, https://codepen.io/aliencash/pen/KKyVqXL к сожалению боюсь вы это примете за чистую монету, поэтому скажу сразу, хоть это и работает, это своего рода троллинг. Извините. По честному вам нужно на серверной стороне определять какая страница запрошена и ее загружать. Все остальное - баловство.
если не делать show/hide , то бишь не загружать все страницы изначально и тем самым не перегружая пользователя колечеством мб
какой смысл тогда делать # ? Почему это не обыкновенные ссылки на другие страницы?
Если мешают переходы между страницами то надо гуглить в сторону ajax и single page applications
По описанию звучит как попытка натянуть сову на глобус с помощью жс и хтмл. Если это реальная админка проекта - каждая страничка должна загружаться с сервера, имея соответствующий функционал. Будет это сделано в парадигме СПА или это будут отдельные загрузки - не суть важно.
Хранить ВСЮ админку в одной страничке - редкий бред. Вы заколебетесь менять функционал какой-то одной фичи в общей куче кода, который еще должен соблюдать в отдельных своих частях уникальность блоков и прочие неочевидные на первый взгляд вещи.
главная задумка в том, чтобы не создавать каждую страницу, перейдя по любому URL адресу,
Для этого есть шаблоны и вьюшки, которые хорошо настраиваются и отлично выполняют данную функцию.