Hola a todos.
Tengo la relación inmueble, detallar_caracteristicas_internas y Caracteristica_Interna, tal cual muestro en la imagen adjunta.
En caracteristica_interna tengo un listado de las caracteristicas como son: dormitorio, patio, sala, etc. Cada uno con una imagen respectiva; en detallar_caracteristica_interna tengo el valor que le corresponde a cada Caracteristica_interna, es decir cada tupla "Detallar_Caracteristica_Interna" contiene "id_inmueble, id_caracteristica_interna, valor_detalle_caracteristica", para que se entienda de lo que hablo les subo otra imagen.
El código que tengo funciona correctamente, lo que no consigo realizar es la validación mediante ajax del campo "valor_detalle_caracteristica". Estuve viendo $this->performAjaxValidation(); el cual supuestamente valida tambien un arreglo de modelos, y es donde no puedo continuar; cabe aclarar que la validacion por post funciona correctamente.
Este es mi controlador en Caracteristica_Interna
public function actionDetallarCaracteristicas(){
$caracteristicas = CaracteristicaInterna::model()->getCaracteristicasBasicas('Habitacion');
foreach($caracteristicas as $i=>$caracteristica)
$modelo_detalle_caracteristicas[] = new DetalleCaracteristicasInternas();
$this->performAjaxValidation($modelo_detalle_caracteristicas);//Aqui esta mi problema
$this->validarCaracteristicasDetalladas($modelo_detalle_caracteristicas,$caracteristicas);
$this->render('detallarCaracteristicas',array(
'detalle_caracteristicas'=>$modelo_detalle_caracteristicas,
'model'=>$model = new CaracteristicaInterna(),
));
}
y detallarCaracteristicas.php
<?php $form=$this->beginWidget('CActiveForm',array(
'id' => 'detalle-caracteristicas-internas-form',
'enableAjaxValidation' => true,
)); ?>
<?php foreach(CaracteristicaInterna::model()->getCaracteristicasBasicas('Habitacion') as $i=>$item): ?>
<div class="cont_atributos estilo_contenedores izquierda">
<div class="izquierda"><?php echo CHtml::image('/images/inmuebles/'.$item->imagen_caracteristica_interna)?></div>
<div class="cont_atributo_valor">
<div class="cont_nombre_atributo izquierda">
<?php echo $form->hiddenField($detalle_caracteristicas[$i],"[$i]id_inmueble",array('value'=>1)) ?>
<?php echo $form->hiddenField($detalle_caracteristicas[$i],"[$i]id_caracteristica_interna",array('value'=>$item->id_caracteristica_interna)) ?>
<?php echo $item->nombre_caracteristica_interna?>
</div>
<div class="cont_valor_atributo">
<?php if($item->tiene_valor_literal == true):?>
<?php echo $form->textField($detalle_caracteristicas[$i], "[$i]valor_detalle_caracteristica", array('maxlength' => 50,'class'=>'valor_atributo estilo_contenedores'));?>
<?php echo $form->error($detalle_caracteristicas[$i], "[$i]valor_detalle_caracteristica"); ?>
<?php endif;?>
<?php if($item->tiene_valor_literal == false):?>
<div>
<div class="check_box">
<?php if(!$detalle_caracteristicas[$i]->isNewRecord){?>
<?php if($detalle_caracteristicas[$i]->valor_detalle_caracteristica == 'si'){ ?>
<img src="/../images/generales/checked.gif"></img>
<?php echo $form->hiddenField($detalle_caracteristicas[$i], "[$i]valor_detalle_caracteristica", array('maxlength' => 50,'value'=>'si'));?>
<?php echo $form->error($detalle_caracteristicas[$i], "[$i]valor_detalle_caracteristica"); ?>
<?php }else{ ?>
<img src="/../images/generales/checked.gif" class="oculto"></img>
<?php echo $form->hiddenField($detalle_caracteristicas[$i], "[$i]valor_detalle_caracteristica", array('maxlength' => 50,'value'=>'no'));?>
<?php echo $form->error($detalle_caracteristicas[$i], "[$i]valor_detalle_caracteristica"); ?>
<?php } ?>
<?php }else{?>
<img src="/../images/generales/checked.gif"></img>
<?php echo $form->hiddenField($detalle_caracteristicas[$i], "[$i]valor_detalle_caracteristica", array('maxlength' => 50,'value'=>'si'));?>
<?php echo $form->error($detalle_caracteristicas[$i], "[$i]valor_detalle_caracteristica"); ?>
<?php }?>
</div>
</div>
<?php endif;?>
</div>
</div>
</div>
<?php endforeach;?>
<?php
echo GxHtml::submitButton($detalle_caracteristicas[$i]->isNewRecord ? 'Guardar' : 'Modificar',array('class'=>'estilo_botones'));
$this->endWidget();
?>
No se que estoy haciendo mal, cualquier comentario es de ayuda, se los agradesco.