|
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
|
|||||||||||
Можно ли указать ссылку на текущую страницу без обновления?10.06.2022, 10:39. Показов 2895. Ответов 45
Метки нет (Все метки)
Всем привет.
Возник такой вопрос, как можно указать ссылку на текущую страницу, чтобы не было её обновления? Хотя может я некорректно выражаюсь, постараюсь объяснить более понятно. Есть страница, как на рисунке, выбран пункт меню #2, в результате чего в теле страницы отображаются данные соответствующие этому пункту меню. Задача, необходимо в теге <a href=...> указать ссылку к якорю и передать значение переменной. Поэтому, чтобы передать значение я указываю ссылку на эту же страницу, но тогда пункт меню автоматом ставится на #1. Если повторно уже нажать на ту же ссылку, то пункт меню уже не меняется. Пример такой:
Если же указать так:
Первый вариант меня в принципе устраивает, но крайне желательно, чтобы при переходе страницы на саму себя пункт текущего меню тоже не менялся. Если кто понял, что требуется и знает возможно ли это, пожалуйста посоветуйте.
0
|
|||||||||||
| 10.06.2022, 10:39 | |
|
Ответы с готовыми решениями:
45
Переход на текущую страницу без location Меню без ссылки на текущую страницу |
|
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
|
||
| 13.06.2022, 09:16 [ТС] | ||
|
Согласен, можно написать JS скрипт, чтобы через него отрабатывать нажатие ссылок <Редактировать> и <Удалить> и тогда уже через него отправлять id строки, но т. к. я далеко не спец, то получилось то, что получилось, вот и возник вопрос, а можно ли в данном случае этот id как-то хитро передать ссылаясь на якорь, либо же сделать переход страницы на саму себя, чтобы она не перерисовывалась и соответственно первый пункт меню не принимал значение current?
0
|
||
|
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
|
|
| 13.06.2022, 09:52 | |
|
estic, почему ожидается конфликт, если селектор задаётся, естественно, точечно?
У каждого элемента есть родитель, каждому элементу можно передать наследование "от" хоть в 10 уровней. Банально можно задать id или data для пунктов меню. Никаких конфликтов Ну и передать .css() - аля подсветить - тоже запросто
0
|
|
|
1460 / 1013 / 232
Регистрация: 01.10.2018
Сообщений: 3,944
|
|
| 13.06.2022, 12:15 | |
|
websyst_ru, конфликт на фрагментах (другие названия: хэши, якоря). Двух в адресе быть не может. Пытаться совмещать две разные сущности в одном фрагменте - тоже так себе идея. Уже все давно придумано, о чем я выше писал, и отлично работает. Про фрагменты можно забыть.
0
|
|
|
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
|
||
| 13.06.2022, 13:14 [ТС] | ||
|
Я пока начинаю, мне проще сразу по ходу устранять недостатки и устаревшие методы, чтобы к ним не привыкать, поэтому поделитесь информацией, а остальное поищу самостоятельно.
0
|
||
|
1460 / 1013 / 232
Регистрация: 01.10.2018
Сообщений: 3,944
|
|||
| 13.06.2022, 15:05 | |||
|
VKont, современный способ - это использование History API (pushState/replaceState) или полный отказ от JS-прокладки (AJAX) для переключения между страницами, когда этот API не поддерживается.
Адреса в AJAX-запросах ничем не отличаются от адресов в "обычных" запросах. Формат возвращаемого содержимого определяется по наличию специального заголовка в запросе. Добавлено через 4 минуты Добавлено через 3 минуты
1
|
|||
|
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
|
|
| 13.06.2022, 20:30 | |
|
VKont, Боюсь, что я до сих пор не понял идею. она мне кажется странной.
Исходя из этого, я отвечу на то,что вижу "Можно ли указать ссылку на текущую страницу без обновления?" estic, прав, это будет хорошее решение. Однако, данные всё-равно надо запрашивать. И, если, вдруг, каким-то образом данные динамичные при каждом клике (иначе зачем всё это городить) то выше отписал. ajax хорошо с этим справится. По моим выводам вся информация у вас всё-равно формируется в php и она готова. Осталось только запросить/обратиться к нужной странице, т.е. прикручивать третье колесо на велосипед в этом случае не обязательно. На счет конфликтов при селекторе элементов - не согласен. Нет такой структуры страницы, которую нельзя направить селектором на именно нужный элемент. т.е. это вообще не проблема
0
|
|
|
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
|
|||||||||||
| 14.06.2022, 03:14 [ТС] | |||||||||||
|
Вот кратко, но крайне содержательно нарисовал то, что у меня имеется, уверен, что теперь всё будет понятно, нужно было с самого начала так сделать. Имеем основную страницу main.php. Когда она открывается, активен первый пункт меню. В меню три пункта №1, №2, №3 (на рисунке # это просто порядковый номер), но обращение к ним, как тут выразились костыльное, когда, нажимая на каждый пункт меню, выводится разный контент. Допустим второй пункт меню выводит таблицу с некими данными, в каждой строке таблицы в конце строки создается ссылка <Редактировать>, нажимая на которую открывается модальное окно (win1), вывод которого осуществляется ссылкой на фрагмент:
Чтобы в модальном окне выводились данные именно той строки, которую нужно отредактировать, я передаю id этой строки в ссылке ?edit_id= .$result['id']. Если я в гиперссылке сошлюсь просто на модальное окно
Ещё один момент, если я нажму на редактирование, к примеру первой строки в первый раз, то страница перерисуется и когда откроется модальное окно, то под ним будет контент первого меню. Но, если я закрою модальное окно, выберу второй пункт меню и снова нажму редактировать первую строку, то страница уже не перерисуется и модальное окно откроется как положено, а под ним будет таблица.
0
|
|||||||||||
|
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
|
|
| 14.06.2022, 14:21 | |
|
VKont,
массивы условны, они у вас естественно приходят из БД(хотя не важно) а потом таблица рисуется так же через foreach и оформляется в таблицы. Мне показалось бессмысленным формировать данные, которые уже есть. Всем этим у вас занимается php. Но если что, можно всё так же обновить и по клику внутри таба.(ранее писал) При необходимости - дописывайте событие в popup-close, для обновления данных, которые вы изменили в окне. В обще, попробуйте, мне ваша задача нарисовалась именно такой. p.s. в hadler.php с данными делайте что угодно, это ваш edit. Это POST|GET - обработка - preparing - update БД. Суйте форму, и отправляйте на submit или по enter. Готово
1
|
|
|
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
|
|
| 14.06.2022, 14:22 | |
|
Ну и сорян за небольшой сумбур. Стили просто Google - CTRL+C - CTRL+V =)
0
|
|
|
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
|
||
| 14.06.2022, 14:41 [ТС] | ||
|
Спасибо за код, посмотрю что к чему выужу для себя полезное. Навскидку, перебор элементов foreach у меня не пройдёт, потому как id в таблицу не выводится, он есть только в массиве $result, поэтому я и тормознулся с ним и начал задавать подобные вопросы в теме, как же его из массива передать. Вообще я начинал свой проект скорее, как некую для себя тренировку, а потом прикинул и понял, что можно сделать довольно полезную вещь из этого. Теперь вот походу дела думаю начать всё готовое уже переделывать более грамотно, т. к. немного начинаю вникать в суть происходящего. Да и меню скорее всего тоже сделаю через скрипт. А так всем огроменное СПАСИБО за участие и да, тема открыта, если ещё мысли и желание, всегда рад толковым советам и подсказкам!
0
|
||
|
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
|
||
| 14.06.2022, 14:50 | ||
|
ну и в конце-концов, не важно в каком формате данные приходят суть в том, что все у вас уже есть в php за функционал отвечает именно он. Осталось только направить запросы. Если из моего копипаста выбросить всё ненужное.. То это строк 20 на js, просто отправка запросов (не перезагружая страницы, Всё)
0
|
||
|
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
|
||
| 14.06.2022, 15:03 [ТС] | ||
0
|
||
|
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
|
||||||
| 14.06.2022, 15:36 | ||||||
|
VKont, Оттого я и негодовал. Аля ВТФ за изобретение тут =) Когда всё можно решить несколько символов.
В предложенном выше коде я так и сделал А можно еще проще
0
|
||||||
|
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
|
|
| 14.06.2022, 15:59 [ТС] | |
|
Блин, я что-то последние дни запарился, стоп-стоп, немного погорячился. Проблема-то у меня не с переменной же, а как её передать из одного скрипта в другой. Т. е. один скрипт у меня выведет таблицу с данными, допустим в тег <td> через id я передаю id строки, но как я этот id должен передать в другой скрипт для обработки? Я пытался передать через адресную строку, но, если ссылка ведёт на якорь, то переменная не передаётся. Указывать main.php и передавать id, тогда меню сбрасывается в результате перерисовки страницы. А, если допустим будет id в теге, как я должен в другом скрипте отследить без скриптов JS, что редактировать необходимо именно эту строку?
0
|
|
|
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
|
|||||||
| 14.06.2022, 16:10 | |||||||
|
VKont, session, cookie, post\get, js storage,local storage.
Все данные у вас есть, просто прочитайте их.
0
|
|||||||
|
1460 / 1013 / 232
Регистрация: 01.10.2018
Сообщений: 3,944
|
||||||
| 14.06.2022, 19:23 | ||||||
Про "post\get" не понял.Добавлено через 4 минуты POST /win5[?p=1] - создание/удаление объектов категории win5; POST /win5/1[?p=1] - сохранить объект с идентификатором 1 категории win5; и т.д. У меня наличие строки запроса ("?p=1") играет важную разграничительную роль при определении разных действий, т.е. /win5 и /win5?p=1 - это далеко не одно и то же. Но вам, я думаю, можно обойтись без этого, поэтому я везде заключал строку запроса в квадратные скобки.
0
|
||||||
|
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
|
||
| 16.06.2022, 12:14 [ТС] | ||
|
В общем я зашёл в тупик. Я перелопатил кучу кода, переделал модальные окна, сделал, чтобы они выводились через jquery, казалось бы вот оно, что мне нужно было, теперь всё в модалку выводится как нужно, всё редактируется и сохраняется, но вновь беда. Теперь после того, как я отредактировал данные в модальном окне и нажал кнопку сохранить, у меня ведь опять страница перерисовывается, а соответственно и первый пункт меню становится активным по умолчанию. Да ё-маё, столько работы, а результат почти один. При предыдущем методе, страница перерисовывалась потому что я ссылался на неё, чтобы передать переменную id, а теперь после того, как нажимаю сохранить, запускаю скрипт php для сохранения данных и потом, когда рефреш происходит, основная страница обновляется и меню сбрасывается. Резонный вопрос спросите вы, а почему обновление страницы происходит, зачем? А потому как я не знаю, как к действию кнопки Сохранить привязать скрипт php для сохранения данных, чтобы потом прога возвращалась обратно в окно.
0
|
||
|
1460 / 1013 / 232
Регистрация: 01.10.2018
Сообщений: 3,944
|
|
| 16.06.2022, 23:05 | |
|
Вы же AJAX использовали. Или вам "рефреш" нужен, чтобы обновить список под окном? Вообще модальное окно с формой редактирования - это что-то 10-летней давности. Можно сделать просто вывод списка, либо формы редактирования. Да, список придется чаще обновлять с сервера, но для начала лучше так (для повышения эффективности можно выводить в списке не все поля, а только основные, или можно сделать список "настраиваемым", т.е. таким, чтобы можно было выбирать поля для вывода). Потом, как освоите основы, можно будет продолжать совершенствовать, например сделать редактирование отдельных полей прямо в списке и т.п.
0
|
|
|
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
|
||
| 17.06.2022, 04:26 [ТС] | ||
|
Добавлено через 1 час 38 минут Просто я изначально делал так скажем по учебнику, форма, в которую выводятся поля Input и кнопки submit и reset, поэтому и при нажатии на Сохранить или Добавить соответственно запускался по экшену формы соответствующий скрипт и происходило последующее обновление страницы. В виду этого получается, что хочешь доброе приложение не используй стандартные средства?
0
|
||
|
1460 / 1013 / 232
Регистрация: 01.10.2018
Сообщений: 3,944
|
|||
| 17.06.2022, 08:34 | |||
|
Добавлено через 5 минут Я даже в CMS до сих пор продолжаю поддерживать двойственность ("стандартные"/"нестандартные" средства). Правда, это обусловлено прежде всего тем, что CMS в основном используется, как SaaS. Для "собственных нужд", наверное, можно и полностью отказаться от использования "стандартных" средств. Хотя иногда бывают и непредвиденные ситуации, когда они могут выручить.
0
|
|||
| 17.06.2022, 08:34 | |
|
Как открыть форму по кнопке, в которой можно указать только ссылку? Можно ли сделать ссылку на конкретную страницу слайдера? Как сделать чтоб при нажатие на ссылку открывалось видео без обновления странице как ссылку сделать кнопкой добавления в друзья (ко мне) без захода на мою страницу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|