我正在使用以下代码在另一个视图中与我们联系。
<?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请求。我希望页面保留在表单上,并从控制器中获取并显示成功或错误消息。