Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Ajax en cake php

Estas en el tema de Ajax en cake php en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola estoy haciendo un select dependiente con cake mediante ajax pero el problema se sucita cuando traigo el otro select, me lo carga bien, pero ...
  #1 (permalink)  
Antiguo 10/01/2012, 19:17
 
Fecha de Ingreso: mayo-2010
Mensajes: 70
Antigüedad: 13 años, 10 meses
Puntos: 1
Ajax en cake php

Hola estoy haciendo un select dependiente con cake mediante ajax pero el problema se sucita cuando traigo el otro select, me lo carga bien, pero también viene con la la interfaz del default.ctp, es decir que me carga de nuevo toda la página. Este es mi trozo de código donde hago el ajax, previamente cargo la librería prototype obvio
Espero haberme explicado gracias
Código PHP:

$departament 
$form -> label('departament','Departamento');
        
$v $ajax->remoteFunction(array('url' => array('controller' => 'users''action' => 'prueba',12),'update' => 'divcity'));
        echo 
'<div id="departamento">' $this->Form->input('departament_id',array('label' => false,'before' => $departament,'onChange' => $v)) . '</div>';
        echo 
'<div id="divcity"></div>'
  #2 (permalink)  
Antiguo 17/02/2012, 13:59
 
Fecha de Ingreso: febrero-2012
Mensajes: 37
Antigüedad: 12 años, 2 meses
Puntos: 5
Respuesta: Ajax en cake php

Podrías intentar lo siguiente; en users->prueba

Código PHP:
Ver original
  1. public function prueba(){
  2. $this->autoRender = false;
  3. $datos = $this->_myAction();
  4. return $datos;
  5. }

con el autoRender en false evitas que te carge la vista automaticamente
luego el return se encarga de regresar el array de datos necesario para poblar el otro select

Si no te funciona con autoRender false o no te acomodas podrías también crear un nuevo
Element en el cual pones sólo el select

Código PHP:
Ver original
  1. public function prueba(){
  2. $datos = $this->_myAction();
  3. $this->render('/elements/tuOtroSelect');
  4. }

Con este Element puedes poblar el otro select (el update)
Esto lo he hecho con jQuery en cake 1.3.x y 2.0.x con el método ajax ObserveField

puedes checar esta página para más ejemplos ajax en cakephp: [URL="http://www.cakephp.4uk.pl"]http://www.cakephp.4uk.pl[/URL]
y también aquí: [URL="http://bakery.cakephp.org/articles/jozek000/2011/11/23/ajax_helper_with_jquery_for_cakephp_2_x"]http://bakery.cakephp.org/articles/jozek000/2011/11/23/ajax_helper_with_jquery_for_cakephp_2_x[/URL]

Recuerda que no es posible que esten juntas jQuery con otras librerias por compatibilidad, para solucionar eso tienes que hacer uso del noConflict

[URL="http://book.cakephp.org/1.3/es/view/1643/Using-jQuery-with-other-libraries"]http://book.cakephp.org/1.3/es/view/1643/Using-jQuery-with-other-libraries
[/URL]
Saludos

Última edición por arhego; 17/02/2012 a las 14:07

Etiquetas: ajax, cake, php, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:57.