Подскажите где я ошибаюсь надо отправить емаил через формы с ajaxom
это код формы
<?php $form = ActiveForm::begin(['id' => 'form'],['contact' => 'form']); ?>
<div class="col-md-4"> <?= $form->field($model, 'name')->textInput(['autofocus' => true, 'placeholder' => 'Ad'])->label(false) ?></div>
<div class="col-md-4"><?= $form->field($model, 'email')->textInput(['placeholder' => 'E-mail'])->label(false) ?></div>
<div class="col-md-4"><?= $form->field($model, 'subject')->textInput(['placeholder' => 'Telefon'])->label(false) ?></div>
<div class="col-md-12"><?= $form->field($model, 'body')->textarea(['rows' => 6 , 'placeholder' => 'Mesaj yaz'])->label(false) ?></div>
<div class="col-md-12">
<input type="test" name="test1" value="999" method="post">
<input type="test1" name="test2" value="978" method="post">
<input type="test2" name="test3" value="87" method="post">
<input type="test3" name="test4" value="87" method="post">
<div class="form-group">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
</div>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
</div>
</div>
</div>
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var infoMail = $('.info-mail');
$('#form').on('beforeSubmit', function(e){
e.preventDefault();
var form = $(this);
$.ajax({
url: "site/Sendmail",
method: "POST",
data: form.serialize(),
type: 'json',
success: function (result) {
var newarr = $.parseJSON(result);
console.log("результат " + newarr.success);
if (newarr.success) {
infoMail.find('ul').append('<li> Ваше сообщение отправлено! </li>');
infoMail.slideDown();
$('#form').trigger('reset'); //очистка формы
}
}
});
return false;
});
});
</script>
url : что написать надо ? action controllera ?
это модел contacta формы чтота добавить надо ?
public function sendEmail($email)
{
return Yii::$app->mailer->compose()
->setTo($this ->email)
->setFrom([$this->email => $this->name])
->setSubject($this->subject)
->setTextBody($this->body)
->send();
}
}
это контроллер
public function actionContact()
{
$model = new ContactForm();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
Yii::$app->session->setFlash('success', 'Müraciətiniz üçün təşəkkür edirik');
} else {
Yii::$app->session->setFlash('error', 'Gözlənilməz xəta baş verdi');
}
return $this->refresh();
} else {
return $this->render('contact', [
'model' => $model,
]);
}
}