Запуск php скрипта в October CMS через javascript
Возник такой вопрос, как в octobercms обработать скрипт php. Нужно запустить отправку данных на почту. Ко всему хочется обойтись без плагинов. Октябрьские страницы CMS могут выполнять только функции и имеют все файлы расширения htm, просто вставить код не получиться. Куда и что надо записать и положить . Как можно реализовать данный модуль и функционал в Octobrcms Форма имеет такой вид:
<form class="form">
<img src="{{ 'assets/img/modal-close.svg'|theme }}" class="close-modal">
<h2 class="form-title">Заполните заявку на бесплатную<br> консультацию специалиста</h2>
<div class="form-cont">
<input type="text" class="form-input" name="userName" placeholder="Ваше имя">
<input type="text" class="form-input" name="userPhone" placeholder="Телефон">
<textarea class="form-textarea" name="userMess" placeholder="Комментарий"></textarea>
<button class="first-btn form-btn" type="button">Оставить заявку</button>
<p class="got_it">Ваша заявка принята, ожидайте звонка</p>
</div>
</form>
Ловим переменные с помощью javaScript:
function Correct() {
$('.form-btn').hide()
$('.got_it').show()
$('input[type=text]').val('')
setTimeout(function () {
$('.form-btn').show()
$('.got_it').hide()
}, 5000)
}
$('.form-btn').on('click', function () {
let name = $(this).parents('form').find('input[name="userName"]').val()
let phone = $(this).parents('form').find('input[name="userPhone"]').val()
let errors = 0
if (name == "") {
$(this).parents('form').find('input[name=userName]').css({'border-color':'red'})
++errors
}
if(phone == ""){
$(this).parents('form').find('input[name="userPhone"]').css({'border-color':'red'})
}
if (errors == 0) {
$(this).parents('form').find('input[type=text]').css({'border-color':'rgba(6, 22, 41, 0.3)'})
let str = $(this).parents('form').serialize()
$.ajax({
type: "POST",
data: str,
url: "assets/form.php",
success: Correct()
});
}
})
Сам файл form.php:
<?php
$Name = $_POST['userName'];
$Phone = $_POST['userPhone'];
$Serv = $_POST['userServ'];
$Size = $_POST['userSize'];
$Mess = $_POST['userMess'];
$fuulmessage = "Имя: " . $Name .
"\nТелефон: " . $Phone .
"\nУслуга: " . $Serv .
"\nКомментарий: " . $Mess .
"\nРазмер участка: " . $Size;
$messsage = $fuulmessage;
$to = '[email protected]';
$subject = "Новая заявка!";
$subject = "=?utf-8?B?" . base64_encode($subject) . "?=";
$from = '[email protected]';
$headers = "From: $from\r\nReply-to: $from\r\nContent-type: text/plain; charset=utf-8\r\n";
mail($to, $subject, $messsage, $headers);
?>