TemKa_SD 9 02/19/20 02:00 Здравствуйте. Есть виджет, есть класс из которого берутся данные для виджета, есть JS с аякс запросом в контроллер, мне нужно соединить всё это между собой. 1. Настройки виджета передаются в класс с выборкой данных, в зависимости от этих настроек выбирается тот или иной where. Я через JS обращаюсь в контроллер, который сейчас голый, я не могу из него вызвать класс и получить данные, так как у меня нет виджетовских настроек. Как с таким работать? Вот настройки виджета предаются в класс: https://prnt.sc/r4cmhd Как мне вызвать функцию класса из контроллера, если у меня нет настроек виджета? https://prnt.sc/r4cmt1 Я понимаю, что в классе можно указать стандартные значения, но у настроек виджета они могут отличатся, суть задачи - обновить виджет через JS при запросе. Поделиться сообщением Ссылка на сообщение
newbie 1723 02/19/20 06:34 Передавайте настройки виджета через js. Например, в html сформировали ссылку к методу контроллера + конфиги виджета. В js получили ее и передали. 1 Поделиться сообщением Ссылка на сообщение
TemKa_SD 9 02/19/20 07:10 34 минуты назад, newbie сказал: Передавайте настройки виджета через js. Например, в html сформировали ссылку к методу контроллера + конфиги виджета. В js получили ее и передали. Еще вопрос есть по JS. Как из .done() получить результат переменной? Что-то не получается никак. Т.е как сделать: .done({ var = result; }); echo var; Поделиться сообщением Ссылка на сообщение
TemKa_SD 9 02/19/20 07:19 Только что, 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 Поделиться сообщением Ссылка на сообщение
newbie 1723 02/19/20 07:57 https://stackoverflow.com/questions/16805306/jquery-return-ajax-result-into-outside-variable/ Поделиться сообщением Ссылка на сообщение
TemKa_SD 9 02/19/20 07:58 1 час назад, newbie сказал: сформировали ссылку к методу контроллера + конфиги виджета Сделал так: https://prnt.sc/r4g64w спасибо за подсказку. Поделиться сообщением Ссылка на сообщение
TemKa_SD 9 02/19/20 08:11 13 минут назад, newbie сказал: https://stackoverflow.com/questions/16805306/jquery-return-ajax-result-into-outside-variable/ Я не понимаю. 1. Объявление var не могает. 2. Таймаут не помогает. 3. Отключение async не помогает. Поделиться сообщением Ссылка на сообщение
TemKa_SD 9 02/20/20 07:14 (изменено) 1 час назад, newbie сказал: Почему в done() не делаете? Это не правильно. Запрос возвращает только информацию об ип адресе, пихать туда весь код не хочется. Может метод отдельный сделать для получения инфы по ип? Хотя всё равно не передает: https://prnt.sc/r4zei1 Изменено 20 февраля 2020 пользователем TemKa_SD Поделиться сообщением Ссылка на сообщение
newbie 1723 02/20/20 08:29 1 час назад, TemKa_SD сказал: Хотя всё равно не передает: https://prnt.sc/r4zei1 А должен? Вы хотя бы документацию посмотрите Поделиться сообщением Ссылка на сообщение
TemKa_SD 9 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 Изменено 20 февраля 2020 пользователем TemKa_SD Поделиться сообщением Ссылка на сообщение
newbie 1723 02/23/20 06:35 В вашем варианте нужно использовать 'async': false Поделиться сообщением Ссылка на сообщение
TemKa_SD 9 02/24/20 04:29 21 час назад, newbie сказал: В вашем варианте нужно использовать 'async': false Подскажите пожалуйста "как правильно" с этим работать. Через timeout? Я кстати пробовал весь код засунуть в done() всё равно не работало, причем вообще всё сломалось. Поделиться сообщением Ссылка на сообщение
newbie 1723 02/26/20 06:17 24.02.2020 в 09:29, TemKa_SD сказал: Подскажите пожалуйста "как правильно" с этим работать. Через timeout? При чем тут таймаут? Я же дал ссылку. Добавили новый параметр со значением. И все. Поделиться сообщением Ссылка на сообщение