0

我使用了 OctoberCMS静态页面插件,通过它我正在创建静态页面。

问题是,我在 Partial 中创建了一个联系表格,如下所示。

contactform_snippet.htm -标记

在此处输入图像描述

contactform_snippet.htm -代码

在此处输入图像描述

下面是我创建并使用了我刚刚创建的contactform_snippet.htm的静态页面。

在此处输入图像描述

下面是预览它的样子。

在此处输入图像描述

问题是,即使我点击“提交”按钮,它也没有做任何事情。

我还将表单代码从更改为data-request="{{ __SELF__ }}::onSendInquiry"data-request="onSendInquiry"但随后出现以下错误:

未找到 AJAX 处理程序“onSendInquiry”。

这里的事情是,我在CMS 页面而不是静态页面中创建和复制了类似的东西,并且所有内容都在那里进行验证和发送电子邮件。

所以我的问题是如何使用Snippets在这里的静态页面中使同样的事情起作用。我知道可以通过创建组件来实现,但是我有很多表单,我想实现这样的东西来让它工作。有什么想法我需要在这里完成这项工作吗?

谢谢

4

1 回答 1

0

好的,伙计们,最终我通过将我的操作放在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;
}]

如此接近却又如此遥远。最后得到了它。谢谢

于 2017-04-11T10:32:22.897 回答