Как передать значение переменной на следующую страницу через URL параметры в JavaScript?

Проблема с передачей данных между страницами

Делаю мобильное приложение для учебного проекта на JavaScript и jQuery. Нужно передать значение переменной totalDays с одной страницы на другую через URL параметры. Пытаюсь использовать GET метод, но что-то идет не так.

Код на странице calculator.html:

var totalDays = (mass/0.032);
var totalDays = document.getElementById('mydays').value;

Код на странице planning.html:

var totalDays;
var totalDays = document.getElementById('mydays').value;
document.write(totalDays);

Проблема в том, что вместо числового значения получаю [Object object] на второй странице.

Структура проекта

В проекте 4 файла: три HTML страницы и один JS файл. Главная страница home.html собирает данные из форм и отправляет их на calculator.html. Файл utils.js содержит общие функции и формулы для всех страниц.

Между home.html и calculator.html передача работает нормально через формы:

home.html:

function mainFunction(){
    var mass = processData(parseFloat(document.forms.userForm.Mass.value));
    document.forms.userForm.mass.value = mass;
    document.forms.userForm.submit();
}

calculator.html:

var mass;
mass = decodeURIComponent(getUrlParams()["mass"]);

Но с calculator.html на planning.html такой способ не подходит, потому что нет формы для отправки. Как лучше решить эту задачу? Слышал про localStorage, но может есть способ через URL параметры?

У тебя в коде баг - totalDays объявляется два раза. Оставь только var totalDays = (mass/0.032); и выкинь строчку с getElementById. Для перехода юзай window.location.search = '?totalDays=' + totalDays; или просто location.assign(). А на странице планнинга парси через URLSearchParams - намного лучше чем getUrlParams().

Проблема в том, что ты пытаешься взять значение из элемента, которого нет на странице. Сделай так: в calculator.html добавь параметр в ссылку window.location.href = 'planning.html?totalDays=' + totalDays;, а в planning.html парси его через getUrlParams() - как уже делаешь с mass. Или еще проще через localStorage: localStorage.setItem('totalDays', totalDays) на первой странице и localStorage.getItem('totalDays') на второй.

Всё правильно, но не забывай использовать encodeURIComponent, когда добавляешь переменную в URL. То есть в calculator.html у тебя должно быть что-то вроде location.href = 'planning.html?totalDays=' + encodeURIComponent(totalDays);. А на planning.html просто получай значение через getUrlParams(). Это сработает.