Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
TemKa_SD

Помогите с логикой

Рекомендованные сообщения

Здравствуйте.

Есть виджет, есть класс из которого берутся данные для виджета, есть JS с аякс запросом в контроллер, мне нужно соединить всё это между собой.

1. Настройки виджета передаются в класс с выборкой данных, в зависимости от этих настроек выбирается тот или иной where. Я через JS обращаюсь в контроллер, который сейчас голый, я не могу из него вызвать класс и получить данные, так как у меня нет виджетовских настроек. Как с таким работать?

Вот настройки виджета предаются в класс: https://prnt.sc/r4cmhd

Как мне вызвать функцию класса из контроллера, если у меня нет настроек виджета? https://prnt.sc/r4cmt1

Я понимаю, что в классе можно указать стандартные значения, но у настроек виджета они могут отличатся, суть задачи - обновить виджет через JS при запросе.

Поделиться сообщением


Ссылка на сообщение

Передавайте настройки виджета через js.

Например, в html сформировали ссылку к методу контроллера + конфиги виджета. В js получили ее и передали.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
34 минуты назад, newbie сказал:

Передавайте настройки виджета через js.

Например, в html сформировали ссылку к методу контроллера + конфиги виджета. В js получили ее и передали.

Еще вопрос есть по JS. Как из .done() получить результат переменной? Что-то не получается никак. Т.е как сделать:

.done({

var = result;

});

echo var;

 

 

Поделиться сообщением


Ссылка на сообщение

Что за echo в js?

Поделиться сообщением


Ссылка на сообщение
Только что, newbie сказал:

Что за echo в js?

Я образно, извините.

			ips.getAjax()( '?app=wc3&module=games&controller=ajax&do=geoLocation&show=json&noencode=1', {
				dataType: 'json',
				data: {
					ip: data.ip
				}
			} )
			.done( function (response) {
				countryIso = response.country.iso.toLowerCase();
				Debug.log(response);
			});

// тут countryIso

 

Поделиться сообщением


Ссылка на сообщение
1 час назад, newbie сказал:

сформировали ссылку к методу контроллера + конфиги виджета

Сделал так: https://prnt.sc/r4g64w спасибо за подсказку.

Поделиться сообщением


Ссылка на сообщение
13 минут назад, newbie сказал:

Я не понимаю.

1. Объявление var не могает.

2. Таймаут не помогает.

3. Отключение async не помогает.

Поделиться сообщением


Ссылка на сообщение

Почему в done() не делаете?

Поделиться сообщением


Ссылка на сообщение
02/20/20 07:14 (изменено)
1 час назад, newbie сказал:

Почему в done() не делаете?

Это не правильно. Запрос возвращает только информацию об ип адресе, пихать туда весь код не хочется. Может метод отдельный сделать для получения инфы по ип?

 

Хотя всё равно не передает: https://prnt.sc/r4zei1

Изменено пользователем TemKa_SD

Поделиться сообщением


Ссылка на сообщение
1 час назад, TemKa_SD сказал:

Хотя всё равно не передает: https://prnt.sc/r4zei1

А должен? Вы хотя бы документацию посмотрите

Поделиться сообщением


Ссылка на сообщение
02/20/20 09:51 (изменено)
1 час назад, newbie сказал:

А должен? Вы хотя бы документацию посмотрите

Я не понимаю, можете объяснить?

Вот код:

var test;

ips.getAjax()( ips.getSetting('baseURL') + 'index.php?app=wc3&module=games&controller=ajax&do=geoLocation', {
  data: {
    ip: data.ip
  }
} )
  .done( function (response) {
  test = response;
});

Debug.log("Ответ: " + test);

Вот ответ:

Цитата

Ответ: undefined

 

Изменено пользователем TemKa_SD

Поделиться сообщением


Ссылка на сообщение

В вашем варианте нужно использовать 

'async': false

 

Поделиться сообщением


Ссылка на сообщение
21 час назад, newbie сказал:

В вашем варианте нужно использовать 


'async': false

 

Подскажите пожалуйста "как правильно" с этим работать. Через timeout? Я кстати пробовал весь код засунуть в done() всё равно не работало, причем вообще всё сломалось.

Поделиться сообщением


Ссылка на сообщение
24.02.2020 в 09:29, TemKa_SD сказал:

Подскажите пожалуйста "как правильно" с этим работать. Через timeout?

При чем  тут таймаут? Я же дал ссылку. Добавили новый параметр со значением. И все.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...