Самопальная форма отправки данных

InstantCMS 2.X

Куда отправлять данные из формы в коде

#1 11 августа 2021 в 21:32

Приветствую коллеги! Возникла проблема, решение которой не могу понять.

И так, мне требуется запилить форму в коде в определенном месте, конструктор форм не подходит, т.к. при отправке еще дополнительно будут собираться данные со страницы JSом. И вот тут не могу догнать куда отправлять, то ли на экшен  /forms/send_ajax, то ли пилить свой обработчик, и там уже создавать экземпляр класса PHPMailer или может есть какая то функция похожая на Wordpress — wp_mail. Ну в общем объяснил как смог. 
Как правильно организовать отправку данных через JS?

#2 11 августа 2021 в 21:49

Где будите обрабатывать форму, туда и отправляйте. Создайте экшен для обработки, если нету. И в аяксе пропишите его

  1. $.ajax({
  2. type: 'POST',
  3. url: '/название компонента/название файла экшена без расширения', ...
#3 11 августа 2021 в 22:54

конструктор форм не подходит, т.к. при отправке еще дополнительно будут собираться данные со страницы JSом.

DrDooM

А тем же JSом упаковать собранные данные в поле формы чем не вариант?

#4 12 августа 2021 в 10:23

конструктор форм не подходит, т.к. при отправке еще дополнительно будут собираться данные со страницы JSом.

DrDooM

А тем же JSом упаковать собранные данные в поле формы чем не вариант?

Олег Васильевич я

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

#5 12 августа 2021 в 14:27

 DrDooM, конечно хорошо, что вы видите проблему в целом. Но может быть начать с базовой функциональности:

— создать файл form.php c собственно формой,

— создать файл handler.php, который будет работать с $_POST  и отправлять письмо, не важно как, хоть с помощью mail(), если хостинг позволяет.

А уже когда это у вас заработает, думать, как вписать данную функциональность в сайт.

#6 12 августа 2021 в 15:12

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

DrDooM

Можно JSом использовать событие onClock на кнопке отправки формы или onSubmit при отправке данных самой формы, в котором и будете собирать данные только при нажатии кнопки отправки формы получателю. В остальных случаях данные не будут собираться.

Добавлено спустя 3 минуты

Вот тут есть пример самопальной формы

под названием «Врите мне» 😀

#7 12 августа 2021 в 20:07

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

DrDooM

Можно JSом использовать событие onClock на кнопке отправки формы или onSubmit при отправке данных самой формы, в котором и будете собирать данные только при нажатии кнопки отправки формы получателю. В остальных случаях данные не будут собираться.

Вот тут есть пример самопальной формы

под названием «Врите мне» 😀

Loadырь

Привет земляк! Спасибо за пример. 

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.