Foros del Web » Programando para Internet » PHP »

Select dependiente [DUDA]

Estas en el tema de Select dependiente [DUDA] en el foro de PHP en Foros del Web. Hola ya tengo mi select dependiente solo tengo una duda Lo que quiero es que pasando los 2 primeros datos 1.- Pais 2.- Provincia Se ...
  #1 (permalink)  
Antiguo 02/12/2011, 18:49
 
Fecha de Ingreso: noviembre-2011
Mensajes: 19
Antigüedad: 7 años, 7 meses
Puntos: 2
Select dependiente [DUDA]

Hola ya tengo mi select dependiente solo tengo una duda

Lo que quiero es que pasando los 2 primeros datos 1.- Pais 2.- Provincia

Se despliege en texto plano lo que tengo en X tabla, a como lo tengo ahora se despliega en un Dropdown. Muchas gracias
PS: Trabajo sobre codeigniter
Saludos.

CONTROLADOR
Código PHP:
<?php
class Inicio extends CI_Controller {
    function 
__construct(){
         
parent::__construct();
        
        
$this->load->model('Paises_model');
    }

    function 
index()
    {
        
$datos['paises']=$this->Paises_model->obtenPaises();
        
$this->load->view('select_dependiente',$datos);
    }
    
    function 
provincias_select()
    {
        
$pais=$this->input->post('id_paisjs');
        
$datos['provincias']=$this->Paises_model->obtenProvincias($pais);
        
$this->load->view('provincias_select',$datos);
    }
       function 
ciudades_select()
    {
        
$provincia=$this->input->post('id_provinciajs');
        
$datos['ciudades']=$this->Paises_model->obtenCiudades($provincia);
        
        
$this->load->view('ciudades_select',$datos);
    }
}
?>

MODELO

Código PHP:
<?php
class Paises_model extends CI_Model {
    function 
__construct(){
         
parent::__construct();
    }
    function 
obtenPaises()
    {
        
$data=array();
        
$q2 $this->db->select('*');
        
$q2 $this->db->get('pais');
        foreach (
$q2->result_array() as $row2){
            
$data[] = $row2;
        }
        return(
$data);
    }
    function 
obtenProvincias($id)
    {
        
$data=array();
        
        
$q2 $this->db->select('*');
        
$q2 $this->db->where('idpais',$id);
        
$q2 $this->db->get('provincia');
        foreach (
$q2->result_array() as $row2){
            
$data[] = $row2;
        }
        return(
$data);
    }
    function 
obtenCiudades($id)
    {
        
$data=array();
        
        
$q2 $this->db->select('*');
        
$q2 $this->db->where('idprovincia',$id);
        
$q2 $this->db->get('ciudad');
        foreach (
$q2->result_array() as $row2){
            
$data[] = $row2;
        }
        return(
$data);
    }    
}
?>
VISTA
Código PHP:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <script language="JavaScript" type="text/javascript" src="<?php echo base_url(); ?>js/jquery-1.3.2.min.js"></script>
    <script language="JavaScript" type="text/javascript" src="<?php echo base_url(); ?>js/procesar.js"></script>
    
    <script>
        base_url='<?php echo base_url(); ?>index.php/';    
    </script>

</head>
<body>
    <p>
    Pais:<br>
    <select name="id_pais" id="id_pais">
        <option value="-1">SELECCIONAR</option> 
        <?php 
            
foreach($paises as $i => $dato)
            {
                echo 
'<option value="'.$dato['idpais'].'">';
                echo 
$dato['nombre_pais'];
                echo 
'</option>';
            }
        
?>
    </select>
    </p>
    <p>
    Provincia:<br>
    <select name="id_provincia" id="id_provincia"  disabled="disabled">
       </select>
    <img src="<?php echo base_url(); ?>imagenes/loader.gif" style="display:none;" alt="Cargando" id="imgbloque"/
    </p>
    <p>
    Tema:<br>
    <select name="id_ciudad" id="id_ciudad" disabled="disabled">
       </select>
    <img src="<?php echo base_url(); ?>imagenes/loader.gif" style="display:none;" alt="Cargando" id="imgtema"/>
    </p>
</body>
</html>

Procesar.js

Código:
$(document).ready(function(){		
		$("#id_pais").change(function(){
			if($(this).val()!=""){
				var dato=$(this).val();
				$("#imgprovincia").show();
				$.ajax({
					type:"POST",
					dataType:"html",
					url:base_url+"inicio/provincias_select",
					data:"id_paisjs="+dato,
					success:function(msg){
						$("#id_provincia").empty().removeAttr("disabled").append(msg);
						$("#imgprovincia").hide();
						$("#id_ciudad").empty().attr("disabled","disabled");
					}
				});
			}else{
				$("#id_provincia").empty().attr("disabled","disabled");
				$("#id_ciudad").empty().attr("disabled","disabled");
			}	
		});
		$("#id_provincia").change(function(){
			if($(this).val()!=""){
				var dato=$(this).val();
				$("#id_ciudad").show();
				$("#imgciudad").show();
				$.ajax({
					type:"POST",
					dataType:"html",
					url:base_url+"inicio/ciudades_select",
					data:"id_provinciajs="+dato,
					success:function(msg){
						$("#id_ciudad").empty().removeAttr("disabled").append(msg);
						$("#imgciudad").hide();
					}
				});
			}else{
				$("#id_ciudad").empty().attr("disabled","disabled");
			}	
		});
	});

Etiquetas: dependiente, html, select, tabla
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 19:27.