CanvasJS – обновление параметра URL ИЛИ при изменении формы selectmenuchange

  • Автор темы seolinkspay
  • 29
  • Обновлено
  • 15, May 2024
  • #1
Хорошо, мой мозг сегодня не работает, поэтому мне нужна помощь в этом вопросе. У меня есть страница, на которой я использую CanvasJS для отображения статистики о странице. Это отлично работает.

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

Однако когда дело доходит до загрузки всего этого через javascript, у меня возникает проблема.

В настоящее время я проверяю, есть ли параметр в URL-адресе, и если да, то устанавливаю соответствующее ему значение переменной.

Это работает.

Однако, поскольку я использую меню выбора пользовательского интерфейса jQuery для стилизации полей выбора, у меня есть функция для получения значений из выбора, которая, поскольку она находится внутри самой функции, ничего не возвращает внешней функции, которая обновляет CanvasJS.

. На данный момент код такой:
 

$(function() {

var selectedMethod = '',

statisticsType = '';

if (GetURLParameter('chart')) {

selectedMethod = GetURLParameter('chart'); // this works

}

$('#method').on('selectmenuchange',function() {

var $this = $(this);

selectedMethod = $('#'+$this.prop('name')+' option:selected').val().toLowerCase();

URL = window.location,

baseURL = URL['href'].split('&');

window.history.pushState('', 'Methodselection '+selectedMethod+'', ''+baseURL[0]+'&chart='+selectedMethod+''); //this also works, however the selectmethod-variable isn't returned to the outer function, naturally

})

if (selectedMethod.length != 0) {

$.post('/get_settings.php',{getsetting:true,settingsvalue:'statistics_type'}, function(data) {

data = $.parseJSON(data);

selectedType = data.returnstatus;

})

$.post('/statistics_processing.php',{chartmethod:selectedMethod}, function(data) {

// in here all the pulling of the canvasjs-content goes, among other things, this is where the "selectedMethod" should be assigned



Код (разметка): я нашел одно решение, которое работает, но не соответствует цели (window.location.reload в функции onchange). Я также знаю, что могу дублировать код javascript, но у меня это не работает.

У кого-нибудь есть совет, как это сделать проще всего?

Короткая версия: сделайте так, чтобы ОБА selectmenuonchange И существующий параметр URL запускали функцию для отображения CanvasJS.

seolinkspay


Рег
11 Mar, 2012

Тем
1

Постов
3

Баллов
13
Тем
49554
Комментарии
57426
Опыт
552966

Интересно