Hola, estoy intentado hacer dos selects de paises y ciudades, he visto muchos ejemplos por internet pero el problema es que estoy usando codeigniter y no sé si el problema lo tengo en algo referente a CI o a algo de Jquery, asique no se muy bien si este tema corresponde más a este foro o al de CI.
Pongo el código que tengo.
El formulario:
Código:
<?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(); ?>
El archivo js:
Código:
function cargarCiudades(){
$.post('cargar_ciudades','pais='+$('#pais').val(),vuelta_ciudades);
}
function vuelta_ciudades(ciudades){
$('#ciudad').html(ciudades);
}
El controlador:
Código:
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));
}
El modelo:
Código:
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;
}
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.
Alguien puede ayudarme??
Muchas gracias!