Борьба с параметрами URL

Мне нужен совет относительно параметров URL. Иногда, когда я нажимаю кнопку, которая переключает страницу со страницы 1 на страницу 2, она удаляет некоторые значения параметров GET.

Вот пример тега <a>: <a href = "/forms/page_name/dashboard.php?page=page1&pg=<?=$_GET['pg']?>&type=fa&emp=<?=$_GET['emp']"> Name of Link </a>

когда я нажимаю на эту ссылку, &pg и другие параметры теперь пусты, кроме dashboard.php. Поэтому я вручную кодирую его через javascript, чтобы сделать это проще:

$('.leave_info').each(function(index, element){
      $(element).dblclick(function(e){
          let pg = $(this).val()
          let page = $(this).data('page')
          let type = $(this).data('type')
          let emp = $(this).data('emp')
          let super_id = $(this).data('id')

          window.location.href  = "/forms/leaver/dashboard.php?page=page1&type = "+type+"&pg = "+pg+"&emp = "+emp
     })
})

Спасибо за помощь...

Похоже на проблему X/Y. Если вы потеряете параметры, возможно, это на сервере. Трудно понять, что вы на самом деле спрашиваете

mplungjan 18.07.2023 06:29

Также вам не нужен каждый: $('.leave_info').on("dblclick",function(e){

mplungjan 18.07.2023 06:44

да, извини, это слишком сложно объяснить @mplungjan

Nagonus Lrak 18.07.2023 08:55

есть много элементов с одним и тем же классом .leave_info, которые мне нужно щелкнуть один за другим, поэтому я использовал эту функцию, знаете ли вы какие-либо другие сокращения для этого кода?

Nagonus Lrak 18.07.2023 08:57
$('.leave_info').on("dblclick",function(e){ назначит щелчок всем элементам с этим классом. Так работает jQuery
mplungjan 18.07.2023 09:14

спасибо @mplungjan, вы помогли сегодня, я попробую сейчас ....

Nagonus Lrak 18.07.2023 09:18

@NagonusLrak попробуйте спросить администратора сети или проверьте свой .htaccess, вы можете увидеть там какие-то правила, возможно, он блокирует некоторые параметры URL.

Roberts 18.07.2023 09:30

спасибо, сэр @Roberts

Nagonus Lrak 18.07.2023 09:31
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
8
51
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если вы спрашиваете, как лучше создать новый URL-адрес, сохраняя (большую часть) параметров GET, вы можете использовать объекты URL и URLSearchParams.

// parse the current GET parameters
const params = new URLSearchParams(window.location.search)
// modify the parameters, if needed, using `.append`, `.delete` and `.set`
params.set("newkey", "newval")
// construct the new URL
const newurl = new URL("/forms/leaver/dashboard.php?" + params, window.location)
// if you need it as string, just toString it, or use `.href`:
console.info(newurl.href)

(Очевидно, что фрагмент стека изначально не будет иметь аргументов GET, поэтому вы не сможете увидеть, как они сохраняются, запустив его здесь.)

Если вы просто хотите перенаправить на ту же страницу, изменив некоторые параметры, это еще проще (на самом деле не запускайте это здесь, так как он попытается перенаправить фрагмент):

// parse the current GET parameters
const params = new URLSearchParams(window.location.search)
// modify the parameters, if needed, using `.append`, `.delete` and `.set`
params.set("newkey", "newval")
// replace the current URL's search params, which triggers reload
window.location.search = params

Для этого я хотел бы использовать ваш код и применить его к нашему. Могу я воспользоваться вашим разрешением? Мне нужно это ...

Nagonus Lrak 18.07.2023 07:01

Как написано здесь , код в этом ответе неявно лицензирован под CC BY-SA 4.0. Однако можно даже возразить, что это всего лишь демонстрация нормального использования URL и URLSearchParams, и поэтому его даже нельзя лицензировать, так как он слишком общий.

Amadan 18.07.2023 07:34

Спасибо за дополнительную информацию. @Амадан

Nagonus Lrak 18.07.2023 08:55

Это работает нормально, но я думаю, что это была проблема с СЕРВЕРОМ. Вы спрашивали у своего сетевого администратора какие-то правила в сети? Вы можете проверить .htaccess?

Это действительно комментарий, а не ответ. У вас достаточно представителей, чтобы оставлять комментарии - я уже прокомментировал, что это, вероятно, проблема с сервером.

mplungjan 18.07.2023 09:13

Мне очень жаль, сэр, за мой ответ. У нас также была подобная проблема, прежде чем мы должны настроить ее в .htaccess, которая блокирует некоторые запросы или параметры из URL-адреса, поэтому я также предполагаю, что это, вероятно, проблема с сервером.

Roberts 18.07.2023 09:25

Вы можете предложить, но сделайте это в комментарии к вопросу, пожалуйста

mplungjan 18.07.2023 09:27

Утвердительный. Еще раз спасибо.

Roberts 18.07.2023 09:28

Это не дает ответа на вопрос. Чтобы подвергнуть критике или запросить разъяснения у автора, оставьте комментарий под его публикацией. - Из отзыва

XMehdi01 18.07.2023 10:43

Другие вопросы по теме