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

  • Автор темы Seolinkspay
  • Обновлено
  • 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

Тем
81

Постов
194

Баллов
619
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно