Sandra, mi consejo, despues de haber investigado un poco es con jquery.
Voy a colocar codigo de una aplicacion que realice hace poco con lo que
deseas.

en mi vista add.ctp

<?php //debug($form); ?>
<?php echo $html->css("themes/smoothness/jquery-ui-timepicker")?>
<?php echo $html->script("ui/jquery.ui.datepicker")?>
<?php echo $html->script("ui/jquery.ui.timepicker")?>
<?php echo $html->script('ui/i18n/jquery.ui.datepicker-es');?>
<div class="citaProgramadas form">
<?php echo $this->Form->create('CitaProgramada');?>
    <div id="tipo_aseguradora">
    <?php echo $form->input('aseguradorastypes',array('label'=>__('Tipo de
Aseguradora',true),'empty'=>'Seleccione','type'=>'select','options'=>$aseguradorastypes,
"onchange"=>"aseguradora(this.value)"));?>
    </div>
    <br clear="all"/>
    <div id="aseguradora">
<?php if($this->data["CitaProgramada"]["aseguradorastypes"]):?>
    <?php if($this->data["CitaProgramada"]["aseguradorastypes"]==2):?>
<?php echo $form->input("CitaProgramada.aseguradora_id",
array("label"=>__("Aseguradora", true), "options"=>$prepagas,
"empty"=>"--"))?>
    <?php endif;?>
    <?php if($this->data["CitaProgramada"]["aseguradorastypes"]==1):?>
<?php echo $form->input("CitaProgramada.aseguradora_id",
array("label"=>__("Aseguradora", true), "options"=>$epss, "empty"=>"--"))?>
<?php echo $form->input("CitaProgramada.numorden", array("label"=>__("Número
de Orden", true)))?>
<?php echo $form->input("CitaProgramada.fechaorden",
array("label"=>__("Fecha de la Orden", true), "type"=>"text"))?>
<script>
    $(document).ready
    (
function()
{
    $("#CitaProgramadaFechaorden").datepicker({dateFormat: 'yy-mm-dd'});
}
    );
</script>
    <?php endif;?>
<?php endif;?>
    </div>
    <br clear="all"/>
    <div id="tipo_consulta">
<?php echo $this->Form->input('typeconsulta_id',array('label'=>__('Tipo de
Consulta',true),'empty'=>'Seleccione'));?>
    </div>
    <br clear="all"/>
    <div id="especialidad">
<?php echo
$this->Form->input('speciality_id',array('label'=>__('Especialidad',true),'empty'=>'Seleccione','type'=>'select','options'=>$especialidades,
"onchange"=>"medico(this.value)"));?>
    </div>
    <br clear="all"/>
    <div id="medico">
    </div>
    <br clear="all"/>
    <?php echo $this->Form->input('start_date', array("type"=>"text"));?>
    <?php echo $this->Form->input('start_time', array("type"=>"text"));?>
    <br clear="all"/>
    <?php echo $this->Form->end(__('Crear Cita', true));?>
</div>

<script>
$(document).ready
(
    function()
    {
$("#CitaProgramadaStartDate").datepicker({minDate: +0,dateFormat:
'yy-mm-dd'});
$("#CitaProgramadaStartTime").timepicker();
    }
);

function aseguradora(tipo)
{
    $("#aseguradora").html('<?php echo $html->image("ajax-loader.gif")?>');

    $.ajax
    (
{
    url: "<?php echo $html->url(array("controller"=>"cita_programadas",
"action"=>"aseguradora"))?>/"+tipo,
    success: function(m)
    {
    $("#aseguradora").html(m);
    }
}
    );
}
 function medico(especialidad)
{
    $("#medico").html('<?php echo $html->image("ajax-loader.gif")?>');

    $.ajax
    (
{
    url: "<?php echo $html->url(array("controller"=>"cita_programadas",
"action"=>"medico"))?>/"+especialidad,
    success: function(m)
    {
$("#medico").html(m);
    }
}
    );
}
</script>

en el controlador..... la funcion aseguradora

function aseguradora($aseguradoratypes_id= null)
{
 if(!$aseguradoratypes_id)
{
echo "";
exit;
}
 $conditions= array();
$conditions["user_id"]= $this->Auth->user("id");
if($aseguradoratypes_id)
$conditions["aseguradoratypes_id"]= $aseguradoratypes_id;
 $uas= $this->UserAseguradora->find("all",
array("conditions"=>$conditions));
 $aseguradoras= array();
if($uas)
{
foreach($uas as $ua)
$aseguradoras[$ua["Aseguradora"]["id"]]= $ua["Aseguradora"]["name"];
}
 $this->set(compact("aseguradoras"));
 if(count($aseguradoras)==1)
{
$this->data["CitaProgramada"]["aseguradora_id"]= key($aseguradoras);
$this->set("aseguradora", array_shift($aseguradoras));
}
 //SI ES 1 ES EPS!!! Esto esta quemado, asi que hay que estar pendiente si
esto cambia.
if($aseguradoratypes_id==1)
$this->set("numorden", true);
 }


La funcion medico el cual se llama tambien.......


function medico($speciality_id=null)
{
    $conditions= array();
    if($speciality_id)
    $conditions["speciality_id"]= $speciality_id;

    $ss= $this->Speciality->findById($speciality_id);

    //debug($ss);exit;

    $medics= array();
    if($ss)
    {
foreach($ss["Medic"] as $s)
$medics[$s["id"]]= $s["fullname"];
    }

    $this->set(compact("medics"));

    if(count($medics)==1)
    {
    $this->data["CitaProgramada"]["medic_id"]= key($medics);
    $this->set("medic", array_shift($medics));
    }
}



Espero te sirva.



El 14 de junio de 2011 08:16, Luis M@ster <[email protected]
> escribió:

> Hola Sandra!
>
> para hacer esto necesita Ajax, puede usar una libreria como jQuery o
> Mootools, para ser mas preciso lo que necesita hacer son Consulta
> atraves de ajax, te dejare unso enlaces que te podran servir para
> esto.
>
> jQuery.ajax Api: http://api.jquery.com/category/ajax/
> Mootool Cass request: http://mootools.net/docs/core/Request/Request -
> demo site: http://mootools.net/demos/?demo=Request
>
> Prototype Ajax Api: http://api.prototypejs.org/ajax/
>
>
> Te recomiendo Prototype en este caso, ya que Cakephp tiene una
> libreria para Prototype.
>
> Espero que esto te sirva de ayuda.
>
> Saludos,
>
> On Jun 13, 11:14 pm, sandra milena mendoza <[email protected]>
> wrote:
> > Lo que quiero es tener un select donde salgan los datos de mi tabla
> > status y poder filtrar mi consulta por el estado seleccionado en mi
> > select.  Por ejemplo si en mi select selecciono Pendiente me salga en
> > mi paginate solo los datos que essten en estado pendiente.  Alguien
> > sabe como hacerlo??
> >
> > On 12 jun, 12:58, harenson henao <[email protected]> wrote:
> >
> >
> >
> >
> >
> >
> >
> > > Cordial saludo,
> >
> > > lo que quieres hacer te lo hace el paginate, cuando utilizas el
> paginate de
> > > cakePHP, en la vista puedes hacer algo como:
> >
> > > <table>
> > >     <thead>
> > >         <tr>
> > >             <th><?php echo $this->Paginator->sort(__('Nombre', true),
> > > 'name'); ?></th>
> > >             <th><?php echo $this->Paginator->sort(__('Estado', true),
> > > 'status'); ?></th>
> > >         </tr>
> > >     </thead>
> > >     <tbody>
> > >         <?php foreach($tramites as $tramite): ?>
> > >         <tr>
> > >             <td><?php echo $tramite['Tramite']['name']; ?></td>
> > >             <td><?php echo $tramite['Tramite']['status']; ?></td>
> > >         </tr>
> > >         <?php endforeach; ?>
> > >     </tbody>
> > > </table>
> >
> > > source =>http://book.cakephp.org/view/1233/Pagination-in-Views
> >
> > > De esta forma, los encabezados de tu tabla funcionaran como un filtro,
> es
> > > decir, si ese ejemplo fuese funcional, al darle clic a la columna que
> se
> > > llama "Nombre", los resultados se van a filtrar por la columna "name"
> de la
> > > tabla del modelo usado en esta vista
> > > que sería la tabla "tramites" del modelo "Tramite", en orden ASC o
> DESC;
> > > igual pasa al darle clic a la columna con el nombre "Estado".
> >
> > > Nota: al usar este método, no se van a mostrar solamente los datos de
> un
> > > estado en específico, se muestran todos. Si lo que quieres es mostrar
> sólo
> > > los trámites relacionados a cierto estado, te recomiendo usar jQuery o
> > > Mootools para no recargar la página por completo cada vez que
> selecciones un
> > > estado diferente, pero ahí si no te puedo dar ejemplos ni nada, nunca
> he
> > > usado cakePHP con jQuery o framework similar.
> >
> > > Cordialmente,
> > > Harenson Henao
> >
> > > El 11 de junio de 2011 21:32, sandra milena mendoza
> > > <[email protected]>escribió:
> >
> > > > Algun ejemplo del que me pueda guiar?
> >
> > > > On 11 jun, 19:24, sandra milena mendoza <[email protected]>
> wrote:
> > > > > Gracias por responderme.
> >
> > > > > Yo tengo una tabla llamada status donde estan los estados de mis
> > > > > tramites (otra tabla de mi base de datos) los estados son por
> ejemplo
> > > > > Pendiente, Tramitado, Negado, etc.
> >
> > > > > Lo que quiero es que cuando seleccione un estado, se me filtre mi
> > > > > paginate y me muestre solo los tramites que estan en ese estado.
> >
> > > > > On 11 jun, 19:19, harenson henao <[email protected]> wrote:
> >
> > > > > > Hola, la verdad no entiendo muy bien tú problema (en el codigo
> :P),  si
> > > > lo
> > > > > > que buscas es que se filtren los resultados cada vez que
> seleccionas un
> > > > > > estado, te recomiendo usar {'jQuery','Mootools'} o js puro, para
> no
> > > > hacer
> > > > > > consultas a la base de datos cada que selecciones un estado
> nuevo.
> >
> > > > > > Regálanos por favor un ejemplo de un "dato de estado" que es lo
> que
> > > > dices
> > > > > > que no te muestra el sistema.
> >
> > > > > > Perdón de nuevo si no es lo que necesitas, la verdad no te
> entendí el
> > > > > > inconveniente que tienes en este momento al usar cakePHP.
> >
> > > > > > Éxitos.
> >
> > > > > > El 11 de junio de 2011 18:28, sandra milena mendoza
> > > > > > <[email protected]>escribió:
> >
> > > > > > > En mi vista tengo:
> > > > > > > <?php echo $this->Form-
> > > > > > > >create('Tramite',array('controller'=>'tramite',
> > > > > > > 'action'=>'tramitar')); echo $this->Form->input('statu_id'); ?>
> > > > > > > y me muestra los estados.
> >
> > > > > > > En mi controlador tengo:
> > > > > > >         $status = $this->Tramite->Statu->find('list',
> > > > > > > array('fields'=>'Statu.estado'));
> > > > > > >     $this->set('status', $status);
> >
> > > > > > >         $this->Tramite->recursive = 1;
> > > > > > >         $tramites =  $this->paginate('Tramite',
> array('documento' =>
> > > > $cc,
> > > > > > > 'statu_id' => $this->data['Statu']['id']));
> > > > > > >         //$tramites =  $this->paginate('Tramite');
> > > > > > >         $this->set(compact('tramites'));
> >
> > > > > > > Pero me arroja nulo el campo de estados en el sql entonces no
> me
> > > > > > > muestra ningun dato.
> >
> > > > > > > Que error estoy cometiendo???
> >
> > > > > > > On 11 jun, 18:00, sandra milena mendoza <[email protected]>
> > > > wrote:
> > > > > > > > Buenas tardes
> >
> > > > > > > > Necesito de su ayuda.  Quiero filtrar los datos de mi
> paginate por
> > > > > > > > medio de un combo que traiga los datos de los estados de mi
> tabla
> > > > de
> > > > > > > > la bd.  Estoy intentando traer los datos pero no ha sido
> posible.
> > > > > > > > Alguien tiene algunn ejemplo que me pueda ayudar?
> >
> > > > > > > --
> > > > > > > Has recibido este mensaje porque estás suscrito al grupo
> "CakePHP-es"
> > > > de
> > > > > > > Grupos de Google.
> > > > > > > Para publicar una entrada en este grupo, envía un correo
> electrónico
> > > > a
> > > > > > > [email protected].
> > > > > > > Para anular tu suscripción a este grupo, envía un correo
> electrónico
> > > > a
> > > > > > > [email protected]
> > > > > > > Para tener acceso a más opciones, visita el grupo en
> > > > > > >http://groups.google.com/group/cakephp-es?hl=es.-Ocultartextodela
> > > > cita -
> >
> > > > > > - Mostrar texto de la cita -- Ocultar texto de la cita -
> >
> > > > > - Mostrar texto de la cita -
> >
> > > > --
> > > > Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es"
> de
> > > > Grupos de Google.
> > > > Para publicar una entrada en este grupo, envía un correo electrónico
> a
> > > > [email protected].
> > > > Para anular tu suscripción a este grupo, envía un correo electrónico
> a
> > > > [email protected]
> > > > Para tener acceso a más opciones, visita el grupo en
> > > >http://groups.google.com/group/cakephp-es?hl=es.-Ocultar texto de la
> cita -
> >
> > > - Mostrar texto de la cita -
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
> Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> [email protected].
> Para anular tu suscripción a este grupo, envía un correo electrónico a
> [email protected]
> Para tener acceso a más opciones, visita el grupo en
> http://groups.google.com/group/cakephp-es?hl=es.
>
>


-- 
Carlos Andrés Becerra Galarza.

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a 
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a 
[email protected]
Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.

Responder a