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