Пользовательская контактная форма в Partials и использование в плагине Static Pages
Я использовал OctoberCMS, плагин Static Pages, с помощью которого я создаю Static Pages.
Дело в том, что я создал одну контактную форму в частичной, как показано ниже.
contactform_snippet.htm - разметка
contactform_snippet.htm - Код
А ниже находится Статическая страница, которую я создал и использовал contactform_snippet.htm, который я только что создал.
А ниже находится Предварительный просмотр, как это выглядит.
Дело в том, что даже если я нажму на кнопку "Отправить", это ничего не делает.
Я также изменил код формы с data-request="{{ __SELF__ }}::onSendInquiry"
в data-request="onSendInquiry"
но тогда я получаю ошибку ниже, говоря:
Обработчик AJAX 'onSendInquiry' не найден.
Дело в том, что аналогичную вещь я создал и скопировал в CMS Page вместо Static Page, и все работает там с проверками и отправкой электронной почты.
Поэтому мой вопрос заключается в том, как можно сделать то же самое в Статических страницах, используя сниппеты. Я знаю, что это может быть достигнуто путем создания компонентов, но у меня так много форм, и я хочу реализовать что-то подобное, чтобы заставить его работать. Любые мысли, что мне нужно, чтобы сделать эту работу здесь?
Спасибо
1 ответ
Хорошо, ребята, в конце концов я заставил это работать, поставив мои делать это data-request="onSendInquiry"
в моей форме и положить код ниже в моем файле макета default.htm.
function onSendInquiry()
{
// Collect input
$name = post('name');
$email = post('email');
$subject = post('subject');
$msg = post('msg');
// Form Validation
$validator = Validator::make(
[
'name' => $name,
'email' => $email,
'subject' => $subject,
'msg' => $msg,
],
[
'name' => 'required',
'email' => 'required|email',
'subject' => 'required',
'msg' => 'required',
]
);
if ($validator->fails())
{
$messages = $validator->messages();
throw new ApplicationException($messages->first());
//Retrieving all error messages for all fields
/*foreach ($messages->all() as $message) {
throw new ApplicationException($message);
}*/
//throw new ApplicationException($messages);
}
// All is well -- Submit form
$to = System\Models\MailSetting::get('sender_email');
//$to = System\Models\MailSettings::get('sender_email');
//$to = config('mail.from.address');
//$to = 'mittul@technobrave.com';
//die($to);
$params = compact('name','email','subject','msg');
Mail::sendTo($to, 'yourappname.website::mail.contactform', $params);
return true;
}]
Был так близко, пока так далеко. Понял в конце. Спасибо