Вход

Отправка формы ajax в yii2

Отправка формы ajax в yii2

Если вам потребовалось отправить форму без перезагрузки страницы, то в это вам поможет ajax. В этом уроке мы рассмотрим как осуществляется отправка формы ajax в yii2.

Нам потребуется 3 файла:

IndexController.php

1
2
3
4
5
6
7
8
9
10
11
use app\models\NameModal.php;
 
...
 
$model= new CouponForm();
if(\Yii::$app->request->isAjax){
    if ($model->load(Yii::$app->request->post()) && $model->validate() ) {
       // выполняем необходимые операции с базой
       print_r($model);
    }
}

NameModal.php

1
2
3
4
5
6
7
public $name;
public function rules(){
	return[
		[['name'], 'required'],
		[['name'], 'trim'],
	];
}

page.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use yii\bootstrap\ActiveForm;
 
<?php $form = ActiveForm::begin();?>
	<?php echo $form->field($model, 'name');?>
	<?php echo Html::submitButton('Send', ['class' => 'btn btn-success']);?>
<?php ActiveForm::end();?>
 
...
 
<?php
     $js = <<<JS
     $('form').on('beforeSubmit', function(){
	 var data = $(this).serialize();
	 $.ajax({
	    url: '/index/index',
	    type: 'POST',
	    data: data,
	    success: function(res){
	       console.log(res);
	    },
	    error: function(){
	       alert('Error!');
	    }
	 });
	 return false;
     });
JS;
 
$this->registerJs($js);
?>

18 апреля 2018 /

9111 Views /

0 Comment
Ilya Web developer
Author

«Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.»Martin Golding