Pongo el código que tengo.
El formulario:
Código:
El archivo js:<?php echo form_open('usuarios/addform'); ?> ... <label>Email</label> <span class="errormes"><?php echo form_error('email'); ?></span> <div class="existeEmail errormes"></div> <?php $js='id="email" onblur="comprobar()"'; echo form_input('email',set_value('email'),$js); ?> <label>Pais</label> <span class="errormes"><?php echo form_error('pais'); ?></span> <?php $jspais='id="pais" onChange="cargarCiudades();"'; echo form_dropdown('pais', $paises, $jspais); ?> <label>Ciudad</label> <span class="errormes"><?php echo form_error('ciudad'); ?></span> <?php $jsciudad='id="ciudad"'; echo form_dropdown('ciudad', $ciudades, $jsciudad); ?> ... <?php echo form_close(); ?>
Código:
El controlador:function cargarCiudades(){ $.post('cargar_ciudades','pais='+$('#pais').val(),vuelta_ciudades); } function vuelta_ciudades(ciudades){ $('#ciudad').html(ciudades); }
Código:
El modelo:function cargar_ciudades(){ $pais = $this->input->post('pais'); $ciudad = $this->usuarios->getCiudad($pais); $this->output->enable_profiler(FALSE); // quitar el profiler $this->view = FALSE; //linea para desactivar las vistas $this->layout = FALSE; //linea para desactivar el layout $this->load->view('ajax_view',array('content'=>$ciudad)); }
Código:
Bien, pues la comprobación del email si me funciona, pero cuando selecciono un pais, no pasa absolutamente nada, lo miro con el firebug y no sale ninguna peticion ajax ni nada, no sé porque. Lo tengo todo en el mismo js, lo de la comprobación del email y lo de los paises y ciudades.public function getCiudad($pais){ $this->db->select('nombre'); $this->db->from('ciudades'); $this->db->where('fk_paises', $pais); $query = $this->db->get(); if ($query->num_rows() != 1){ throw new InvalidArgumentException('Error al buscar las ciudades del pais seleccionado'); } $ciudad = $query->row_array(); return $ciudad; }
Alguien puede ayudarme??
Muchas gracias!