Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
TemKa_SD

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

Recommended Posts

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

  • Upvote 1

Share this post


Link to post
Share on other sites
34 минуты назад, newbie сказал:

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

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

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

.done({

var = result;

});

echo var;

 

 

Share this post


Link to post
Share on other sites

Что за echo в js?

Share this post


Link to post
Share on other sites
Только что, 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

 

Share this post


Link to post
Share on other sites
1 час назад, newbie сказал:

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

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

Share this post


Link to post
Share on other sites
13 минут назад, newbie сказал:

Я не понимаю.

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
1 час назад, newbie сказал:

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

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

 

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

Edited by TemKa_SD

Share this post


Link to post
Share on other sites
1 час назад, TemKa_SD сказал:

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

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

Share this post


Link to post
Share on other sites
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

 

Edited by TemKa_SD

Share this post


Link to post
Share on other sites

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

'async': false

 

Share this post


Link to post
Share on other sites
21 час назад, newbie сказал:

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


'async': false

 

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

Share this post


Link to post
Share on other sites
24.02.2020 в 09:29, TemKa_SD сказал:

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...