Есть ли способ передать атрибут значения неподтвержденного поля ввода в качестве параметра URL, используя javascript / Jquery? - PullRequest
0 голосов
/ 26 сентября 2019

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

Я попытался использовать цикл for () для сохранения параметров в массив, а затем перейти к использованию метода append (), чтобы добавить их в конец URL-адреса.В приведенном ниже коде показано, как я пытаюсь добавить каждый параметр по отдельности один за другим

 var url = new URL("file:database/reports/getCurrentStorageOverview.php?params=excel");

  var query_string = url.search;

  var search_params = new URLSearchParams(query_string);

  search_params.append('params', $("#searchParameter1").val());
  search_params.append('params', $("#searchParameter2").val());
  search_params.append('params', $("#searchParameter3").val());
  search_params.append('params', $("#searchParameter4").val());

  url.search = search_params.toString();

  var new_url = url.toString();

  window.open("database/reports/getCurrentStorageOverview.php?params=excel");

console.log(new_url);

Параметры должны быть добавлены в конец URL, однако консоль продолжает сообщать мне, что значение атрибута либо не определено/ когда я пытался использовать массив, он заполнял массив 4 "undefined (s)"

1 Ответ

0 голосов
/ 26 сентября 2019

это другой подход, но так как я не проверял ваш метод, я могу показать вам, что я обычно использую для этого случая:

const querify = obj => {
return Object.keys(obj)
    .map(key => {
        if (typeof obj[key] === 'object') {
            return querify(obj[key])
        } else {
            return `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`
        }
    })
    .join('&') }

что он делает, он берет объект, подобный

var filters = { page: 1, length: 10, sortBy: 'id', etc... }

и превращает его в строку запроса, которая выглядит как «page = 1 & length = 10 & sortBy = id» и т. Д., Чтобы вы могли использовать ее следующим образом:

var url = `database/reports/getCurrentStorageOverview.php?${querify(filters)}`
...