Отправка формы 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 /
9601 Views /
0 Comment