phtamas, on 31 March 2012 - 02:42 PM, said:
Igen, jellemzően így. Ha erősen ajaxra épülő alkalmazást írok, akkor én külön ajax kontrollereket szoktam használni, de ha csak 1-2 ajax requestről van szó, akkor a normál kontrollerhez adom hozzá az actiont. Ilyenkor hasznos lehet az
ajaxOnly filter.
Na, az egyikre rájöttem, ahol az error500-at dobja.
Ilyen mezőim vannak az adatbázisban, hogy nap_1, nap_2 stb
Viszont én ezt úgy állítom össze, hogy a formban van ilyen, hogy nap_1[0] és nap_1[1] stb, és ezzel nem tud már mit kezdeni, kicsit alakítottam rajta, de most meg más baja van. Hogy lehetne ezt kivitelezni?
kep.jpg (50.37K)
Number of downloads: 6
Próbáltam a modelben ezt megoldani, de nem jött össze:
array('nap_1[0], nap_2[0], nap_3[0], nap_4[0], nap_5[0], nap_6[0], nap_7[0]', 'length', 'max'=>20),
array('nap_1[1], nap_2[1], nap_3[1], nap_4[1], nap_5[1], nap_6[1], nap_7[1]', 'length', 'max'=>20),
A másik pedig a user modulnál van, ott valami miatt be sem tölti a jquery-t és a yiiactiveform js fájlokat a validáláshoz.
A reg. view:
<?php $form=$this->beginWidget('UActiveForm', array(
'id'=>'registration-form',
'enableAjaxValidation'=>true,
'disableAjaxValidationAttributes'=>array('RegistrationForm_verifyCode'),
'htmlOptions' => array('enctype'=>'multipart/form-data'),
)); ?>
Itt meg van adva, hogy true.
A controllerben (UActiveForm) pedig ez van a run-nál:
public function run()
{
echo CHtml::endForm();
if(!$this->enableAjaxValidation || empty($this->_attributes))
return;
$options=$this->clientOptions;
if(isset($this->clientOptions['validationUrl']) && is_array($this->clientOptions['validationUrl']))
$options['validationUrl']=CHtml::normalizeUrl($this->clientOptions['validationUrl']);
$options['attributes']=array();
foreach ($this->_attributes as $attr=>$item) {
if (in_array($attr,$this->disableAjaxValidationAttributes)===false) {
array_push($options['attributes'],$item);
}
}
if($this->_summary!==null)
$options['summaryID']=$this->_summary;
$options=CJavaScript::encode($options);
Yii::app()->clientScript->registerCoreScript('yiiactiveform');
$id=$this->id;
Yii::app()->clientScript->registerScript(__CLASS__.'#'.$id,"\$('#$id').yiiactiveform($options);");
}
Tehát elvileg be kellene töltenie ezeket.