Пользовательская контактная форма в 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;
}]

Был так близко, пока так далеко. Понял в конце. Спасибо

Другие вопросы по тегам