Answer the question
In order to leave comments, you need to log in
How to send Post requests via beginForm in Yii2?
Hello.
---
Material:
=
// вьюха
...
<?= Html::beginForm(['/phone'], 'post', ['name' => 'send']) ?>
<div class="input-group">
<?=Html::input('text', 'action', $telefon,['type' => 'hidden']) ?>
<?=Html::input('text', 'code', '',['class' => 'form-control input-lg', 'placeholder' => 'введите код из SMS']) ?>
<span class="input-group-btn">
<?= Html::submitButton('Активировать', ['class' => 'btn btn-danger btn-lg btn-flat']) ?>
</span>
</div>
<?= Html::endForm() ?>
...
// controller
...
public function actionPhone() {
$model = User::findOne(Yii::$app->user->identity->id); // записываем номер телефона в БД
if ($model->load(Yii::$app->request->post()) && $model->save()) { // обновляем запись
Yii::$app->session->setFlash('contactPhone'); // выводим информацию об успехе
if(!$model->save()){
throw new \yii\web\HttpException(500, 'Невозможно сохранить'); // или показываем ошибку в записи
}
return $this->refresh(); // обновляем страницу
}
if(Yii::$app->request->post('send')){ // если отправилась форма с name "send"
if(Yii::$app->request->post('code') == Yii::$app->request->post('action')){ // и эти переданные post данные одинаковые
return $this->redirect(['/account/user', 'id' => Yii::$app->user->identity->id]); // тогда перенаправляем на страницу
} else {
Yii::$app->getSession()->setFlash('error', 'Вы ввели не верный код активации!'); // или посылаем ошибку
}
}
return $this->render('phone', ['model' => $model]); // выводим результат
}
...
Answer the question
In order to leave comments, you need to log in
How to send post data correctly
$_POST //тут пост запрос, как обычно в php
Yii::$app->request->post() //тоже самое, но средствами yii
if(Yii::$app->request->isPost){
$post = Yii::$app->request->post();
echo $post['some_data'];
}else{
echo 'не пришел post запрос, плачем всем отделом';
}
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question