18.08.2019, 04:51
|
|
Интересующийся
|
|
Регистрация: 13.08.2019
Сообщений: 25
|
|
Сортировка меню по data
Есть меню обычное статическое.
В нём есть data-num в разброс
Я хочу что бы пункты меню встали по порядку
Но у меня не получилось его отсортировать до конца но суть проблемы есть в песочнице и так же моя попытка это решить но не знаю на сколько это верно : https://codepen.io/topicstarter/pen/LYPZdZV
Последний раз редактировалось Максим Ученик, 18.08.2019 в 04:53.
|
|
18.08.2019, 05:36
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сначала такой вопрос - в реальности откуда берет сервер данные этого меню?
|
|
18.08.2019, 05:40
|
|
Интересующийся
|
|
Регистрация: 13.08.2019
Сообщений: 25
|
|
Сообщение от laimas
|
Сначала такой вопрос - в реальности откуда берет сервер данные этого меню?
|
я только тренируюсь и пока это просто меню от руки и хотел бы научится сортировать его ... и так же я понимаю что можно и руками в html отредактировать
|
|
18.08.2019, 06:01
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Максим Ученик
|
пока это просто меню от руки
|
Пока, а далее что будет? Ведь трудно в современных реалиях предположить, что и в реальности у вас все будет статика, и вы будет ручками все на страницах прописывать. То есть, страницы будут динамическими, а контент для страниц храниться в большей его части в базе данных. И конечно эти данные будут иметь структуру типа: раздел -> подраздел -> страница. И все это будет добавляться/редактироваться через административный раздел.
Серверный скрипт, получая запросы от клиента, строит страницы, на которых всегда будет выводить меню, как подключаемый шаблон, например, шапки страниц. А зная в каком порядке нужно выводить элементы меню, данные для него сразу же и сортируются требуемым образом. Коли у вас данные для data-num и текст пунктов меню связаны, то данные для меню и нужно отсортировать по полю для data-num. То есть, например, пусть в базе данные для data-num находятся в поле под именем "data", а тексты в поле под именем "name". Серверный код делает запрос с сортировкой:
SELECT * FROM table_name ORDER BY data
и строит по извлеченным данным меню отсортированное по data-num.
На клиенте конечно же возникают ситуации, когда набор html элементов нужно отсортировать/отфильтровать, но меню это все-таки не тот набор, которым должен заниматься клиент. Другое дело, если бы сервер только отдавал клиенту массив данных для меню, а уже клиент по ним строил html код меню, тогда еще можно как-то оправдать такую сортировку. Но даже в этом случае серверу сподручнее сразу выполнить необходимую сортировку данных для меню.
Последний раз редактировалось laimas, 18.08.2019 в 06:09.
|
|
18.08.2019, 06:11
|
|
Интересующийся
|
|
Регистрация: 13.08.2019
Сообщений: 25
|
|
Сообщение от laimas
|
Пока, а далее что будет? Ведь трудно в современных реалиях предположить, что и в реальности у вас все будет статика, и вы будет ручками все на страницах прописывать. То есть, страницы будут динамическими, а контент для страниц храниться в большей его части в базе данных. И конечно эти данные будут иметь структуру типа: раздел -> подраздел -> страница. И все это будет добавляться/редактироваться через административный раздел.
Серверный скрипт, получая запросы от клиента, строит страницы, на которых всегда будет выводить меню, как подключаемый шаблон, например, шапки страниц. А зная в каком порядке нужно выводить элементы меню, данные для него сразу же и сортируются требуемым образом. Коли у вас данные для data-num и текст пунктов меню связаны, то данные для меню и нужно отсортировать по полю для data-num. То есть, например, пусть в базе данные для data-num находятся в поле под именем "data", а тексты в поле под именем "name". Серверный код делает запрос с сортировкой:
SELECT * FROM table_name ORDER BY data
и строит по извлеченным данным меню отсортированное по data-num.
На клиенте конечно же возникают ситуации, когда набор html элементов нужно отсортировать/отфильтровать, но меню это все-таки не тот набор, которым должен заниматься клиент. Другое дело, если бы сервер только отдавал клиенту массив данных для меню, а уже клиент по ним строил html код меню, тогда еще можно как-то оправдать такую сортировку. Но даже в этом случае серверу сподручнее сразу выполнить необходимую сортировку данных для меню.
|
я это всё понимаю, с php и выборкой у меня нету проблем, в данный момент у меня хромает javascript и хотел бы подтянуть/научиться именно ему, сортировкой и пока придумал себе именно такую задачу ...
|
|
18.08.2019, 06:15
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Ну тогда, коли ради "подтянуть" и речь о сортировке, то сделайте поиск по форму для "сортировка" и т.п., получите массу тем о сортировке как массивов/объектов, так и html наборов элементов, и "подтягивайтесь" на здоровье.
|
|
18.08.2019, 06:20
|
|
Интересующийся
|
|
Регистрация: 13.08.2019
Сообщений: 25
|
|
Сообщение от laimas
|
Ну тогда, коли ради "подтянуть" и речь о сортировке, то сделайте поиск по форму для "сортировка" и т.п., получите массу тем о сортировке как массивов/объектов, так и html наборов элементов, и "подтягивайтесь" на здоровье.
|
если бы вы посмотрели бы в codepen то увидили бы что массив я уже отсортировал но само меню нет ....понимаете ? у меня проблема в сортировке меню
|
|
18.08.2019, 06:31
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
А зачем сортировать массив? Я же писал - хотите понять/узнать как сортировать html набор, сделайте поиск, на форуме очень много таких вопросов на всякие разные случаи. Вот сразу же подобная тема, причем рони с завидным постоянством отвечает по много раз на такие вопросы. )
https://javascript.ru/forum/misc/678...-stranice.html
То есть сортируется сразу набор. Вы получили собственно карту индексов, по которым хотите отсортировать, отсортировали, а далее то надо сами элементы расставить по этой карте - appendChild(элемент).
Последний раз редактировалось laimas, 18.08.2019 в 06:38.
|
|
|
|