Пытаюсь создать кнопку средствами ajax. При нажатии на которую будет происходит уменьшение значения max_drink на одну единицу. Но так как новичок в этом деле не могу понять как получить этот запрос в контроллере(и в контроллере ли его получать?) и как отправить его в бд и изменить запись в столбце max_drink у пользователя?
Код вида
<?php
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
/* @var $this yii\web\View */
/* @var $model app\models\Privil */
/* @var $form yii\widgets\ActiveForm */
?>
<br>
<?php $form = ActiveForm::begin([
'layout' => 'horizontal',
'fieldConfig' => [
'template' => "{label}\n<div class=\"col-lg-3\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
'labelOptions' => ['class' => 'col-lg-1 control-label'],
],
]); ?>
<div >
<?= $form->field($model, 'client_id')->textInput() ?>
</div>
Напиток:<?= $model->max_drink ?><br>
<?= Html::submitButton($model->max_drink, ['update']);
?>
<button class="btn btn-lg btn-success" >Еда:<?= $model->max_food ?></button>
<!-- --><?//= Html::submitButton('Save', ['class' => 'btn btn-success']) ?>
<?php ActiveForm::end(); ?>
</div>
<?php
$js = <<<JS
$('form').on('beforeSubmit', function(){
var data = $model->max_drink-1;
$.ajax({
url: 'update?id='+$model->client_id,
type: 'POST',
data: {'id':data},
success: function(res){
console.log("tratata" +data);
},
error: function () {
alert("atata");
}
});
return false;
});
JS;
$this->registerJs($js);
?>
контроллер
public function actionUpdate($id='')
{
$model = $this->findModel($id);
if ($model->load(Yii::$app->request->get()) ) {
return $this->redirect(['update', 'id' => $model->client_id]);
}
return $this->render('update', [
'model' => $model,
]);
if(\Yii::$app->request->isAjax){
return 'alert("Запрос принят!")';
return $this->redirect(['update', 'id' => $model->client_id]);
}
if($model->load(\Yii::$app->request->post())){
return $this->redirect(['update', 'id' => $model->client_id]);
}
return $this->render('update', compact('model'));
}
public function actionCreate()
{
$model = new Privil();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->client_id]);
}
return $this->render('create', [
'model' => $model,
]);
}