Вопрос разработчикам. Что выбрать для ответа на AJAX?

  • 11 Ответов
  • 247 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

progreCCor

  • Осваиваюсь на форуме
  • ***
  • 60
  • 3
Решил сделать себе небольшое расширение. Банально форму обратной связи, но на AJAX.
Код на яваскрипте должен вызывать какой-то скрипт и получать от него ответ. Причем в ответ он конечно должен получать не страницу сайта :-D

Встает вопрос - как лучше оформить расширение - как плагин или как компонент?
И как сделать так чтобы в ответ шло только то что мне нужно? То есть без вывода шаблона.

Извините за тупизм. Еще не слишком вник во внутреннюю структуру Joomla.

*

NewUsers

  • Завсегдатай
  • *****
  • 578
  • 46
Форму можно выводить как угодно, но обработчик ее можно сделать в плагине. С помощью jQuery отправлять AJAX запрос в плагин и отправлять письмо, а в замен выводить результаты или ошибки ( если будут)...

*

Septdir

  • Практически профи
  • *******
  • 2144
  • 108
  • JoomlaZen
Для работы с AJAX в частности с овтетом ввиде json самое оно написать простенький компонент. Тут тебе и кнотролер в котором удобно работать с json и если надо то можно и вьху на в ответ отправить.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

zomby6888

  • Живу я здесь
  • ******
  • 1484
  • 167
Ну зачем писать два расширения для формы и обработчика если можно сделать все в одном? Com_ajax позволяет делать AJAX запросы к хелперу модуля.

https://docs.joomla.org/Using_Joomla_Ajax_Interface/ru
интернет-блог: http://websiteprog.ru

*

Septdir

  • Практически профи
  • *******
  • 2144
  • 108
  • JoomlaZen
Ну зачем писать два расширения для формы и обработчика если можно сделать все в одном? Com_ajax позволяет делать AJAX запросы к хелперу модуля.
Да полезная вещь особенно когда речь идет о модулях или тяжелых плагинах(в частности где надо получать массив данных).
Но вот для форм обратной связи все же удобнее компонент имхо (хотя вообще можно взять готовый). Мне нравиться как это сделано у того же RSForm (хотя местами реализация хромает). Создал в админке форму, настроил и дергай ее как тебе угодно, хочешь в модуль, хочешь в контент, хочешь в шаблон, хочешь на отдельной странице. Да и сами отправлены данные можно в базе хранить чтобы в почту по 100 раз не лазить.
С точки зранеия разработки это конечно в 7 раз дольше, но зато в использовании очень удобно.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

zomby6888

  • Живу я здесь
  • ******
  • 1484
  • 167
Если речь идет о компоненте то тут как бы и вопрсов не стоит, запросы будет принимать какой нибудь json контроллер. Но если речь о том чтобы только вывести форму и сделать для нее обработчик то в разработке компонента необходимости никакой нету.
интернет-блог: http://websiteprog.ru

*

progreCCor

  • Осваиваюсь на форуме
  • ***
  • 60
  • 3
как мне в плагине сделать ответ форме?
на какое событие вешать?

*

progreCCor

  • Осваиваюсь на форуме
  • ***
  • 60
  • 3
у меня не стоит вопрос вывода формы. Стоит вопрос приема данных от нее.

*

progreCCor

  • Осваиваюсь на форуме
  • ***
  • 60
  • 3
С помощью jQuery отправлять AJAX запрос в плагин и отправлять письмо, а в замен выводить результаты или ошибки ( если будут)...
вот этот вопрос меня и интересует. Как можно сделать так чтобы плагин реагировал на определенный адрес?
как сделать так чтобы в ответ он вывел совсем не страницу сайта, а нужную мне информацию?

*

zomby6888

  • Живу я здесь
  • ******
  • 1484
  • 167
вот пример модуля использующего com_ajax

https://github.com/Joomla-Ajax-Interface/Hello-Ajax-World-Module

Цитировать
Как можно сделать так чтобы плагин реагировал на определенный адрес?

Плагин? Для плагина не нужна точка входа вообще. У вас есть запрос, вы в плагине можете из этого запроса проверить наличие того или иного параметра. Для того чтобы точкой входа был компонент вы указываете в параметре компонент, который принимает ваш запрос.

Цитировать
как сделать так чтобы в ответ он вывел совсем не страницу сайта, а нужную мне информацию?

Вы либо создаете контроллер который отдает raw данные или делаете exit в его методе. Для com_ajax вы просто создаете метод в хелпере и отдаете результат, все остальное он сделает сам. Все же написано.
« Последнее редактирование: 15.09.2016, 16:50:28 от zomby6888 »
интернет-блог: http://websiteprog.ru

*

progreCCor

  • Осваиваюсь на форуме
  • ***
  • 60
  • 3
там по ссылке модуль для 2.5
в 3.6 что то поменялось?

*

zomby6888

  • Живу я здесь
  • ******
  • 1484
  • 167
Не поменялось
интернет-блог: http://websiteprog.ru