YII2:使用AJAX提交表单并返回成功消息

时间:2015-10-07 09:36:45

标签: php ajax yii2-advanced-app

我正在使用以下代码在另一个视图中与我们联系。

<?php echo $this->render('contact', [
                'model' => $contactModel,
            ]); ?>

我也包括

'enableAjaxValidation' => true,

到表单标题。 我的控制器代码如下所示。

$model = new ContactForm();

        $data = "";
        if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post()) && $model->validate()) {
            if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
                Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.');
                $data = "success";
            } else {
                Yii::$app->session->setFlash('error', 'There was an error sending email.');
                $data = "Error";
            }

        }else{
            $data = false;
        }

        Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
        return $data;

当我尝试提交表单时,验证工作正常,但是当正确输入所有字段后,页面将重新加载,并在firebug控制台中显示两次ajax请求。我希望页面保留在表单上,​​并从控制器中获取并显示成功或错误消息。

0 个答案:

没有答案