Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196

Можно ли указать ссылку на текущую страницу без обновления?

10.06.2022, 10:39. Показов 2904. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Возник такой вопрос, как можно указать ссылку на текущую страницу, чтобы не было её обновления? Хотя может я некорректно выражаюсь, постараюсь объяснить более понятно.

Есть страница, как на рисунке, выбран пункт меню #2, в результате чего в теле страницы отображаются данные соответствующие этому пункту меню. Задача, необходимо в теге <a href=...> указать ссылку к якорю и передать значение переменной. Поэтому, чтобы передать значение я указываю ссылку на эту же страницу, но тогда пункт меню автоматом ставится на #1. Если повторно уже нажать на ту же ссылку, то пункт меню уже не меняется.
Пример такой:
HTML5
1
<a href=main.php?edit_id=" .$result['id']. "#win5>Редактировать</a>
Здесь страница остаётся та же, но и передаётся значение переменной.

Если же указать так:
HTML5
1
<a href=#win5?edit_id=" .$result['id']. ">Редактировать</a>
то соответственно не передастся значение переменной.

Первый вариант меня в принципе устраивает, но крайне желательно, чтобы при переходе страницы на саму себя пункт текущего меню тоже не менялся.

Если кто понял, что требуется и знает возможно ли это, пожалуйста посоветуйте.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.06.2022, 10:39
Ответы с готовыми решениями:

Из UserControl'a получить ссылку на текущую страницу
Работаю в UWP. Появилась необходимость из UserControl получить ссылку на страницу, на которой он находится. То есть, если это MainPage, то...

Переход на текущую страницу без location
Здравствуйте! Допустим я на странице https://www.test1/posts/?on=1 как сделать ссылку, которая добавит к этому адресу...

Меню без ссылки на текущую страницу
Здравствуйте! Скажите, пожалуйста, что не так? index.php: &lt;? ... $current_page='Главная'; require('menu.php'); ...

45
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
17.06.2022, 10:17  [ТС]
Студворк — интернет-сервис помощи студентам
Добавлено через 8 минут
Цитата Сообщение от estic Посмотреть сообщение
AJAX без JS/другого браузерного языка программирования не бывает.
Ну да, пока ещё не привык к этому, словно разные это ЯП

Цитата Сообщение от estic Посмотреть сообщение
На вашем месте я бы вовсе начал со "стандартных средств", а потом уже навешивал JS-прокладку.
Так я изначально и начал исключительно со стандартных средств, но пока мой проект растёт и развивается, понимаю, что этого для решения всех задуманных мною задач недостаточно.

Без JS и ajax обновления, конечно, было гораздо проще, но, если бы разработчики каким-то образом предусмотрели передачу переменных со ссылкой на якорь, было бы вообще гуд-гуд!

Добавлено через 6 минут
Пробовал вот так передать данные формы
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$(document).on("submit", "#create-product-form", function(){
    // получение данных формы
    var form_data=JSON.stringify($(this).serializeObject());
 
    // отправка данных формы в API
    $.ajax({
        url: "script.php",
        type : "POST",
        contentType : "application/json",
        data : form_data,
        success : function(result) {
            // продукт был создан, вернуться к списку продуктов
            showProducts();
        },
        error: function(xhr, resp, text) {
            // вывести ошибку в консоль
            console.log(xhr, resp, text);
        }
    });
    
    return false;
});
вот здесь ошибка: var form_data=JSON.stringify($(this).seriali zeObject()); , но понять пока не могу. Поэтому просто передал каждое значение поля Input
0
1460 / 1013 / 232
Регистрация: 01.10.2018
Сообщений: 3,948
17.06.2022, 12:26
Цитата Сообщение от VKont Посмотреть сообщение
если бы разработчики каким-то образом предусмотрели передачу переменных со ссылкой на якорь, было бы вообще гуд-гуд!
Без использования фрагментов все проще. Я вам показывал примеры. Конечно, если в API толком не использовать адресацию (я про ваш "script.php"), то можно получить массу проблем. Обычные API ее активно используют. Так что вы изобретаете что-то странное

Добавлено через 2 минуты
Лучше почитайте про адресацию в REST. Если интересует моя адаптация исключительно на методах GET/POST, можете спрашивать.

Добавлено через 5 минут
Не получается передавать в JSON-формате на сервер (про обработку на сервере я уже молчу), можете использовать в AJAX стандартные способы, прежде всего multipart/form-data Так что обработка AJAX-POST-запросов почти не будет отличаться от обработки "стандартных" POST-запросов. Достаточно только статусы ответов менять: 2хх или 3хх.
0
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
17.06.2022, 12:37  [ТС]
Цитата Сообщение от estic Посмотреть сообщение
Так что вы изобретаете что-то странно
Ну я собственно пока ничего не изобретаю, просто делаю так, как получается, параллельно пытаясь вникнуть и разобраться, что к чему. Первым мне попалось модальное окно, которое вызывалось ссылкой на якорь. Но те проблемы, с которыми я столкнулся и вынудили создать данную тему. После общения и попыток исправить самостоятельно, у меня ничего не вышло и чтобы сильно не загоняться, т. к. ещё далеко не всё понимаю, решил переделать на JS, с ним кстати у меня тоже много вопросов возникает, но пока инет в помощь.
Сейчас я переделал и меню и модальные окна, чтобы менялись, открывались и т. д. также посредством JS, соответственно и все манипуляции с БД пришлось делать средствами ajax. НО! Лично у меня ушло на это много времени, почти 2 суток, а результат тот же, вроде всё открывается, данные, если нужно их редактировать выводятся в модальное окно, всё редактируется и сохраняется, но при этом после работы скрипта PHP, хочешь не хочешь, всё равно страница обновляется и поэтому слетает меню на первый пункт. Естественно я пока что-то делаю не так, возможно сам скрипт нужно ещё разбивать не знаю, где моя ошибка, пытаюсь понять

Добавлено через 4 минуты
Цитата Сообщение от estic Посмотреть сообщение
Не получается передавать в JSON-формате на сервер
А я не понял, что вот это такое var form_data=JSON.stringify($(this).seriali zeObject());, вернее эта строка даже подписана, но не разобрался, что значит serializeObject(). Вроде бы все объекты формы, но почему тогда, я нашёл это в рабочем примере в интернете, а у меня на этой строке отладчик выдаёт ошибку? Может библиотека JQuery не та подключена или что-то в этом роде? Я пока не стал разбираться, сделал проще, как мне понятнее
0
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
30.06.2022, 07:36  [ТС]
Всем привет.

Cпешу сообщить, что вот только сегодня, перелопатив принцип своего творения, я наконец-то добился желаемого результата. Теперь у меня при выбранном меню, даже, если обновить страницу, информация после обновления на странице остаётся та же, что была до перезагрузки страницы и пункт меню соответственно остается активным тот же. Это просто круто, но блин для веб-программирования очень всё замутно. Неужели нельзя было это организовать проще? Чем современнее методы разработки, тем всё проблематичней и проблематичней. Хотя, наверное всегда при таком раскладе будем с работой
0
1460 / 1013 / 232
Регистрация: 01.10.2018
Сообщений: 3,948
30.06.2022, 15:16
Все очень просто, о чем я писал в теме. Вы, наверное, опять сделали как-то не так.
0
11 / 11 / 0
Регистрация: 07.10.2016
Сообщений: 196
30.06.2022, 17:48  [ТС]
Цитата Сообщение от estic Посмотреть сообщение
Все очень просто, о чем я писал в теме. Вы, наверное, опять сделали как-то не так.
А как просто, объясните "на пальцах"? Может я чего-то не догоняю ещё, но у меня при выполнении скрипта php страница обновляется полюбасу. И да, мои скрипты php написаны в отдельных файлах и подключаются они методом include, либо же через форму <form>, поэтому после выполнения скрипта, в котором идёт работа с БД, страница обновляется всегда.

Добавлено через 2 часа 8 минут
Как я сделал теперь?

Если ранее, у меня был скрипт JS, который слушал клик по элементу меню и соответственно выводил тот или иной контент, а также делал активным кликнутый пункт меню, то теперь я переделал следующим образом.

В скрипте, я по-прежнему слушаю клик по элементу меню (т. е. выбор пункта меню), когда он произошёл, то элемент меню получает класс current (текущий), но, контент на страницу выводится не по клику, а по изменению класса элемента меню (mutation observer). Т. о. я смог разделить событие вывода контента при клике и без него, когда просто меняется класс элемента. Допустим, страница открывается первый раз, соответственно активным становится первый пункт меню и выводится его содержимое, а когда страница обновляется, то перед этим происходит сохранение текущего выбранного пункта меню и после обновления страницы уже этот пункт меня снова становится активным.
Для меня, как для новичка это бесспорно сложный подход, поэтому я и удивлен, почему так сложно, хотя возможно есть и другие пути попроще.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.06.2022, 17:48

Закрыть доступ на прямую ссылку на страницу, без авторизации
Добрый день, Не давно создал форму авторизации на своём сайте (с использованием БД) которое нашёл скрипт тут, так вот: когда заходишь на...

Как открыть форму по кнопке, в которой можно указать только ссылку?
Есть кнопка, которая содержится в шаблоне темы (wordpress). В шаблоне можно указать на действие кнопки только ссылку (адрес страницы). А...

Можно ли сделать ссылку на конкретную страницу слайдера?
Ребят, клиент .... (найдет синоним слова) *просит слайдер что бы можно было давать ссылку на картинку, оставаясь в слайдере. ...

Как сделать чтоб при нажатие на ссылку открывалось видео без обновления странице
Помогите пожалуйста сделать, так чтоб при нажатие на ссылку в определеном окне открывалось видео без обновдения этой страници!(Допустим...

как ссылку сделать кнопкой добавления в друзья (ко мне) без захода на мою страницу
сайт вконтакте на нем есть реклама (картинки слева) при настройке указывается ссылка на внешней ресурс как эту ссылку сделать кнопкой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
46
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты 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
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru