Te muestro lo que hice yo agregue variables de session para funcione el
paginator, ademas desde el formulario se envia en que base de datos buscar:
if((empty($this->data)) && (!$this->Session->read('busq'))) {
$this->Session->setFlash('Introduzca término para la
busqueda');
$this->redirect(array('controller' => 'inicio','action'
=> 'index'));
} elseif(!empty($this->data)) {
$this->Session->write('busq',
$this->data['Noticia']['busqueda']);
$this->Session->delete('busqdesde');
$this->Session->delete('busqhasta');
$this->Session->delete('busqbasedatos');
}
if(strlen($this->Session->read('busq')) < 4) {
$this->Session->setFlash('El término de busqueda debe
tener mas de 4 caracteres');
$this->redirect(array('controller' => 'inicio','action'
=> 'index'));
}
if(!empty($this->data['Noticia']['desde'])) {
$fechadesde = explode('/',
$this->data['Noticia']['desde']);
$this->Session->write('busqdesde',
$fechadesde[2].'-'.$fechadesde[1].'-'.$fechadesde[0]);
}
if(!empty($this->data['Noticia']['hasta'])) {
$fechahasta = explode('/',
$this->data['Noticia']['hasta']);
$this->Session->write('busqhasta',
$fechahasta[2].'-'.$fechahasta[1].'-'.$fechahasta[0]);
}
if(!empty($this->data['Noticia']['basedatos'])) {
$this->Session->write('busqbasedatos',
$this->data['Noticia']['basedatos']);
}
switch ($this->Session->read('busqbasedatos')) {
case 0:
$condnot[] = array('Noticia.titulo LIKE' =>
'%'.$this->Session->read('busq').'%');
if($this->Session->read('busqdesde')) {
$condnot[] = array("DATE(Noticia.fecha_y_hora)
>= DATE('".$this->Session->read('busqdesde')."')");
}
if($this->Session->read('busqhasta')) {
$condnot[] = array("DATE(Noticia.fecha_y_hora)
<= DATE('".$this->Session->read('busqhasta')."')");
}
$this->paginate = array(
'Noticia' => array(
'conditions' => array(
'AND' => $condnot
),
'order' =>
array('DATE(Noticia.fecha_y_hora) DESC', 'Noticia.orden ASC',
'Noticia.fecha_y_hora'),
'limit' => 10
)
);
$this->set('noticias', $this->paginate('Noticia'));
break;
case 1:
$condnotv[] = array('Noticiav.TITULO LIKE' =>
'%'.$this->Session->read('busq').'%');
if($this->Session->read('busqdesde')) {
$condnotv[] = array("DATE(Noticiav.FECHA) >=
DATE('".$this->Session->read('busqdesde')."')");
}
if($this->Session->read('busqhasta')) {
$condnotv[] = array("DATE(Noticiav.FECHA) <=
DATE('".$this->Session->read('busqhasta')."')");
}
$this->Noticiav->recursive = 1;
$this->paginate = array(
'Noticiav' => array(
'fields' =>
array('Noticiav.NUMERONOTICIA','Noticiav.FECHA','Noticiav.HORA','Noticiav.VOLANTA','Noticiav.TITULO','Noticiav.RESUMEN','Noticiav.ORDEN'),
'conditions' => array(
'AND' => $condnotv
),
'order' => array('Noticiav.FECHA DESC',
'Noticiav.ORDEN ASC', 'Noticiav.HORA'),
'limit' => 10
)
);
$this->set('noticiasv',
$this->paginate('Noticiav'));
break;
}
El 20 de abril de 2012 14:51, pablo <[email protected]> escribió:
> Gente, gracias por la ayuda que me vienen dando.
> Otra consulta.
> Tengo una pantalla con multiples campos para completar para una busqueda.
> mitabla.id
> mitabla.apellido
> mitabla.nombre
> mitabla.ciudad
> LO que quiero es que al realizar la busqueda, si el usuario ingresa un
> dato en el campo "mitabla.id", automaticamente, los demas campos se
> deshabiliten para el ingreso de datos. Y asi con distintas combinaciones
> que seleccionare segun la logica a seguir.
> Como hago para realizar esto?
> mil gracias
> Pablo
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
> Grupos de Google.
> Para ver este debate en la Web, visita
> https://groups.google.com/d/msg/cakephp-es/-/w9BKMLVZR4sJ.
> 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.
>
--
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.