Добрый день всем.
Проблема вот в чем, у меня есть вот такая форма
<div id="overflow">
<div id="malefactorForm" style="position: fixed; left: 50%; top: 120px; width: 440px; margin-left: -220px; background-color: #6f828b; z-index: 41;">
<div style="text-align: left;"><span style="color:#fff; position: relative; font-size: 12px; font-weight: bolder; margin-left: 10px; top: 5px;">Форма добавления Нарушителей</span><?php echo CHtml::imageButton('/images/cancel.png', array('onclick' => 'closeForm("malefactorForm")', 'style' => 'margin:5px 10px 0 0', 'align' => 'right'));?></div>
<div style="margin: 10px; background-color:#fff; padding: 10px;">
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'malefactor-form',
'enableAjaxValidation'=>true,
)); ?>
<p class="note">Поля с <span class="required">*</span> обязательны.</p>
<?php echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->labelEx($model,'FLP'); ?>
<?php echo $form->textField($model,'FLP',array('size'=>60,'maxlength'=>512)); ?>
<?php echo $form->error($model,'FLP'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'RegistrationPassportAddress'); ?>
<?php echo $form->textField($model,'RegistrationPassportAddress',array('size'=>60,'maxlength'=>512)); ?>
<?php echo $form->error($model,'RegistrationPassportAddress'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::ajaxButton($model->isNewRecord ? 'Создать' : 'Сохранить', CHtml::normalizeUrl(array('malefactor/create')),
array(
'success' => 'updateMailFactorFields', 'type' => 'POST', 'cache' => false, 'data' => 'js:$("#malefactor-form").serialize()'
), array(
'type' => 'submit'
) )?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
</div>
</div>
<!-- <div id="overflow"></div>-->
</div>
Форма отображается клиетам при нажатии на одну магическую кропку на панели но это не важно… Эту форма обрабатывает методом actionCreate контроллера
public function actionCreate()
{
$model=new Malefactor;
if (Yii::app()->request->isAjaxRequest) {
$this->performAjaxValidation($model);
if(isset($_POST['Malefactor']))
{
$model->attributes=$_POST['Malefactor'];
if($model->save()) {
Yii::app()->end();
return;
} else {
print_r($_POST); echo "||";
$this->renderPartial('ajaxForm', array('model' => $model), false, true);
return;
}
}
Yii::app()->end();
} else {
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Malefactor']))
{
$model->attributes=$_POST['Malefactor'];
if($model->save())
$this->redirect(array('view','id'=>$model->Id));
}
$this->render('create',array(
'model'=>$model,
));
}
}
С первого взгляда все вроде работает хорошо. Но не все так хорошо как хотелось бы. В таблице оказывается не одна строка, а N-ое количество строк.
Я стал проверять стандартным echo, при первой попытке сохронить пустую форму, выводится Array ( [Malefactor] => Array ( [FLP] => [RegistrationPassportAddress] => ) ) || при последующих попытках сохранить форму вывод echo удваеваются.
Помоги пожалуйста разобраться в этом деле.