alguien me puede ayudar. tengo una vista en un formulari principal para crear una minuta. necesito arrastrarme de dos tablas relacionadas los estados y al seleccionar el estado, me muestre los municipios de ese estado. los campos de las tablas son:
create table municipio (id_municipio serial8 primary key, nombre_municipio varchar(50), municipio_id_estado serial8, foreign key (municipio_id_estado) references estado (id_estado) on delete cascade on update cascade);
create table estado(id_estado serial8 primary key, nombre_estado varchar (50));
minuta esta relacionada con municipio:
lugar_id_municipio serial8,
foreign key (lugar_id_municipio) references municipio (id_municipio) on delete cascade on update cascade,
entonces yo estoy metiendo en la vista de minuta:
<?php echo $form->labelEx($model,‘estado’); ?>
<?php echo $form->textField($model,'estado',array('size'=>60,'maxlength'=>200));
$estado = new CDbCriteria;
$estado->order = 'nombre_estado ASC';
echo $form->dropDownList($model,'id_estado', CHtml::listData(Estado::model()->findAll($estado), 'id_estado', 'nombre_estado'),
array('ajax' => array('type' => 'POST',
'url' => CController::createUrl('Estado/cargamunicipios'),
'update' => '#correspondenciamunicipios'
),'prompt' => 'Seleccione un Tipo'
)
);
?>
<?php echo $form->error($model,'estado'); ?>
</div>
<div class="row">
<div class="row">
<?php echo $form->labelEx($model,'municipio');
if ($model->isNewRecord==1)
{
echo $form->dropDownList($model,'municipio',
array('0' => 'Seleccione un Organismo'));
// se muestra solo Seleccione un Organismo
}
else {
$tipo=$model->id_municipio;
$sql="select count(id_municipio) from municipio where id_municipio='$tipo';";
$connection=Yii::app()->db;
$command=$connection->createCommand($sql);
$row=$command->queryRow();
$bandera=$row['count'];
//
if ($bandera==0) {
//
echo $form->dropDownList($model,'municipio',
array('0' => 'Seleccione un Organismo')); }
// Si el tipo de organismo no tiene ningún
else {
echo $form->dropDownList($model,'municipio',
CHtml::listData(estados_municipio::model()->findAllBySql(
//Aquí van los datos de la búsqueda del segundo combo
"select * from estado where municipio_id_estado
=:keyword order by estado=:clave2 asc",
array(’:keyword’=>$model->municipio,’:clave2’=>$model->estado)),
‘estado’,‘nombre_estado’));
}
}
?></div>
y en el controlador:
public function actionCargarMunicipio_estado()
{
$data=Municipio::model()->findAllBySql(
"select * from municipios where municipio_id_estado
=:keyword or id_estado=0 order by id_estado=0 desc, descripcion asc",
// Aquí buscamos los diferentes organismos que pertenecen al tipo elegido
array(’:keyword’=>$_POST[‘Correspondencia’][‘id_estado’]));
$data=CHtml::listData($data,‘nombre_municipio’,‘nombre_estado’);
foreach($data as $value=>$name)
{
echo CHtml::tag(‘option’, array(‘value’=>$value),CHtml::encode($name),true);
}
}
y no corre, esa cosa dice q no declare: Property "Minuta.id_estado" is not defined.
gracias