Хорошо, мне нужна помощь с чем-то, что кажется довольно простым, но я просто не могу понять.
У меня есть страница в Yii, в которую я пытаюсь встроить форму AJAX. Давайте назовем страницу А. Форма принимает одно значение и должна проверить и сохранить ее в БД, если она в порядке.
Пока вот что я понял:
Форма находится в представлении _form.php, которое содержит CActiveForm и ajaxSubmitButton, которое выглядит следующим образом:
<?php echo CHtml::ajaxSubmitButton('submit', $this->createUrl('/site/something'), array('update'=>'#targetdiv'));?>
Форма вызывается в представлении другого А следующим образом:
<?php echo $this->renderPartial('/site/_form', array('AModel'=>$model)); //Passing some info about A ?>
В действии контроллера что-то я делаю следующее:
if (Yii::app()->request->isAjaxRequest) {
$model = new AJAXForm('submit');
if (isset($_POST['AJAXForm'])) {
$model->attributes = $_POST['AJAXForm'];
if ($model->validate()) {
//When data's valid, save to DB is working fine. This part is working perfectly.
}
else {
//This is the part I'm confused about and that's not working
/*Trying to render the form to get the error messages and summary displayed
but nothing's showing */
$this->renderPartial('/site/_form', array('AModel'=>$model));
Yii::app()->end();
}
}
}
В Firebug я вижу, что при возникновении ошибки ответ снова содержит всю частично визуализированную форму. Однако targetdiv не обновляется с обновленной формой с сообщениями об ошибках.
У меня такое чувство, что я что-то не так делаю в actionController, но я не могу понять, что именно. Было бы полезно, если бы я мог также увидеть полный пример отправленной формы AJAX.
Спасибо!