Всем привет.
Не могу разобраться с отправкой ajax запроса.
Есть представление с формой:
$script = <<<JS
$('#sendEmail').on('click', function(){
var
name = $('#FirstNameContact').val(),
email = $('#emailContact').val(),
mess = $('#messContact').val();
$('#sendBut').prop('disabled', 'disabled');
console.log(name);
$.ajax({
url: '/',
type: 'POST',
data: {name : name, email : email, mess : mess},
success: function(res){
console.log(res);
$('#info-send').html(res);
$('#info-send').css('display','block');
},
error: function(){
$('#error-send').html('Ошибка при отправке сообщения. Перезагрузите страницу');
$('#error-send').css('display','block');
}
});
return false;
});
JS;
$this->registerJs($script, yii\web\View::POS_READY);
<form method="post">
<input type="text" name="FirstName" id="FirstNameContact" placeholder="Ваше имя" required="">
<input class="email" name="Email" id="EmailContact" type="text" placeholder="Email" required="">
<textarea name="Message" id="MessageContact" placeholder="Сообщение" required=""></textarea>
<input type="submit" id="sendEmail" value="Написать">
<div id="contact-errorMsg"></div>
<div id="contact-result"></div>
<div id="contact-info"></div>
</form>
Изначально была такая (но в ходе работы попробовал разные варианты)
<?php $form = ActiveForm::begin() ?>
<?= $form->field($form_model, 'name', ['template' => "{label}\n{input}"])->label(false)
->textInput([
'placeholder' => "Name",
'class' => "",
'id' => "nameContact",
]) ?>
<?= $form->field($form_model, 'email', ['template' => "{label}\n{input}"])->label(false)
->textInput([
'placeholder' => "Email",
'class' => "",
'id' => "emailContact",
]) ?>
<?= $form->field($form_model, 'subject')
->textarea([
'rows' => 2,
'cols' => 5,
'placeholder' => "Your message",
'class' => "",
'id' => "messContact",
])->label(false); ?>
<?=Html::submitInput('Send', ['class' => '', 'id' => 'sendBut']);?>
<?php $form = ActiveForm::end() ?>
<div id="info-send" class="alert alert-success"></div>
<div id="error-send" class="alert alert-danger"></div>
Есть контроллер
public function actionIndex()
{
if(\Yii::$app->request->isAjax){
$name = Yii::$app->request->post('name');
return "Спасибо, ваше сообщение принято. {$name}";
}
}
Строка
if(\Yii::$app->request->isAjax) отрабатывает, но данные из POST не передаются.
При этом, когда проверяю метод, которым передаются данные - указывает на метод
GET.
Подскажите плиз в какую сторону копать?