@alekskondr
php, javascript, yii2, drupal, MQL

Как сделать автосохранение Ajax Yii2?

Не добавляются данные в БД, что делать?

форма
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<div class="activation-form">

    
    <?php $form = ActiveForm::begin([
        'id'=>'formid'
    ]); ?>
    <?= Html::activeTextInput($model, 'ik_co_id', ['class'=>'form-item req', 'value' => "{$_POST['ik_co_id']}"]) ?>
    <?php ActiveForm::end(); ?>

<script>
//    $('#formid').on('submit', function(e) {
//    e.preventDefault();
//});

$('#formid').on('focusout', function(){
     save();
});

function save() {
    var url = $('#formid').attr('action');
    var data = $('#formid').serialize();
    $.ajax({
    	type: "POST",
      	url: url,
      	data: data,
//      	success:function(data) {
//      		if (typeof(data)!='undefined' && data !='') {
//      			alert(data);
//      		}
//      	}	
    });
}
 </script>


экшн
public function actionFail()
    {
        $model = new Activation();
        if ($model->load(Yii::$app->request->post())) {
            $model->save();
            return $this->redirect(['fail', 'id' => $model->active_id]);
        } else {
            return $this->render('fail', [
                'model' => $model,
            ]);
        }
    }
  • Вопрос задан
  • 1479 просмотров
Решения вопроса 1
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
Вам надо создать объект наследуемого класса ActiveRecord и с ним работать для сохранения данных. Вы же работаете с моделью формы, принимаете ее данные и пытаетесь сохранить их тут:
$model->save();
но на что Вы надееетесь, если это модель формы (Model), а с БД работают модели класса ActiveRecord и только? До этого надо еще в БД таблицу создать. И в конфиге соединение с БД настроить и подключить.

Вот статья в документации по теме, после которой Вы сможете, я надеюсь, данные из формы обработать и сохранить.

Но сохранить их без перезагрузки чтобы, просто автоматически при наборе с помощью ajax, как Вы хотели в Вашем прошлом забаненом вопросе, Вам надо понимать, что мой пример из прошлого Вашего вопроса делает, но Ваш багаж знаний для этого недостаточен.

Вам надо почитать про javascript, ajax, jquery, выучить это всё и почитать документацию к yii. А затем уже делать. Вероятно, Вы и с php мало знакомы, тогда надо почитать и мануал с php.net

Успехов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы