Resultados 1 al 2 de 2
  1. #1
    Dragonauta

    Fecha de ingreso
    22 ago, 08
    Ubicación
    Envigado ANt.
    Mensajes
    151
    Gracias
    17
    Agradecido 408 veces en 45 Mensajes

    Predeterminado Clase para generar automaticamente select(combos) dependientes multinivel

    Servicios de Seguridad Informática


    Como se que para un programador es un dolor de cabeza encontrar un buen codigo y que se entienda de como hacer combos dependientes, voy a explicar como hacer el tipico PAIS, ESTADO, CIUDAD/MUNICIPIO.

    Lo primero es crear la base de datos con los paises, estados y ciudades del mundo, la cual adjunto en el comprimido se llama: mundo.sql

    Dentro de la carpeta classes hay un archivo llamado: DataAccess.class donde debes configurar la conexion a tu bd.

    Despues viene el formulario con los tres combos dependientes el cual consta de 3 partes de codigo:
    La primera parte con las librerias que se invocan para crear los combos.
    Código:
    <?php
    require 'classes/Form.class.php';
    require 'classes/DataAccess.class.php';
    require 'classes/ElementsFromDB.class.php';
    require 'classes/LinkedSelect.class.php';
    
    $form=new Form('form', 'post');
    $form->AddInput(array(
    	'elementsfromdb'=>array(
    		'table'=>'paises',
    		'values'=>'id',
    		'options'=>'pais',
    	),
    	'attributes'=>array(
    		'type'=>'select',
    		'id'=>'select_1',
    		'name'=>'select_1'
    	),
    	'externalclass'=>'elementsfromdb',
    	'selected'=>'49',
    	'default'=>array(
    		'value'=>'0',
    		'option'=>'Elige...'
    	)
    ));
    $form->AddInput(array(
    	'elementsfromdb'=>array(
    		'table'=>'estados',
    		'values'=>'id',
    		'options'=>'estado',
    	),
    	'attributes'=>array(
    		'type'=>'select',
    		'id'=>'select_2',
    		'name'=>'select_2'
    	),
    	'externalclass'=>'linkedselect',
    	'linkedby'=>array(
    		'reference'=>'relacion',
    		'id'=>'select_1',
    		'showdefault'=>'0'
    	),
    	'default'=>array(
    		'value'=>'0',
    		'option'=>'Elige...'
    	),
    	'locations'=>array(
    		'js'=>'js/',
    		'php'=>'classes/'
    	)
    ));
    $form->AddInput(array(
    	'elementsfromdb'=>array(
    		'table'=>'municipios',
    		'values'=>'id',
    		'options'=>'municipio',
    	),
    	'attributes'=>array(
    		'type'=>'select',
    		'id'=>'select_3',
    		'name'=>'select_3'
    	),
    	'externalclass'=>'linkedselect',
    	'linkedby'=>array(
    		'reference'=>'relacion',
    		'id'=>'select_2',
    		'showdefault'=>'0'
    	),
    	'default'=>array(
    		'value'=>'0',
    		'option'=>'Elige...'
    	),
    	'locations'=>array(
    		'js'=>'js/',
    		'php'=>'classes/'
    	)
    ));
    $form->GenerateForm();
    ?>
    La segunda parte es el constructor que va antes del head:
    Código:
    <?php $form->GenerateAdditionalJS(); ?> 
    </head>
    Y la tercera parte que agregar los controles en si:
    Código:
    <?php $form->GetInput('select_1'); ?>
    <?php $form->GetInput('select_2'); ?>
    <?php $form->GetInput('select_3'); ?>
    Y la cuarta parte que es en el archivo php que recibe el formulario el del action del index averiguar que Pais, Estado y Ciudad seleccionaron asi:
    Código:
    //averiguar pais
       $_SESSION["select_1"]=$_POST['select_1'];
       $_select_1=$_SESSION["select_1"];
       
       $link=mysql_connect("localhost","sistema4_ixel","fashionxtg2011");
       mysql_select_db("sistema4_ixelmoda",$link);
       mysql_query("SET NAMES 'utf8'");  
       $consulta=mysql_query("select * from paises where id = '$_select_1'",$link); 
       mysql_close($link);
       
       if( mysql_num_rows($consulta) == 1) {
    	$array = mysql_fetch_array($consulta);
    	$_SESSION["pais"] = $array["pais"];
    	$_pais = $_SESSION["pais"];
    	mysql_free_result($consulta);
       }
       //fin pais 
    
       //averiguar departamento/estado
       $_SESSION["select_2"]=$_POST['select_2'];
       $_select_2=$_SESSION["select_2"];
    
       $link=mysql_connect("localhost","sistema4_ixel","fashionxtg2011");
       mysql_select_db("sistema4_ixelmoda",$link);
       mysql_query("SET NAMES 'utf8'");  
       $consulta=mysql_query("select * from estados where id = '$_select_2'",$link); 
       mysql_close($link);
       
       if( mysql_num_rows($consulta) == 1) {
    	$array = mysql_fetch_array($consulta);
    	$_SESSION["estado"] = $array["estado"];
    	$_departamento = $_SESSION["estado"];
    	mysql_free_result($consulta);
       }
       //fin depto/estado
    		
       //averiguar ciudad
       if (empty($_POST['ciudad'])){
       
       $_SESSION["select_3"]=$_POST['select_3'];
       $_select_3=$_SESSION["select_3"];
       
       $link=mysql_connect("localhost","sistema4_ixel","fashionxtg2011");
       mysql_select_db("sistema4_ixelmoda",$link);  
       mysql_query("SET NAMES 'utf8'");  
       $consulta=mysql_query("select * from municipios where id = '$_select_3'",$link); 
       mysql_close($link);
       
       if( mysql_num_rows($consulta) == 1) {
    	$array = mysql_fetch_array($consulta);
    	$_SESSION["municipio"] = $array["municipio"];
    	$_ciudad = $_SESSION["municipio"];
    	mysql_free_result($consulta);
       }
       
       }else{
    	   $_SESSION["municipio"]=$_POST['ciudad'];
    	   $_ciudad = $_SESSION["municipio"];
       }	   
       //fin ciudad
    Descargar ejemplo:
    4shared.com - free file sharing and storage
    El descargable tiene dos carpetas una formulario_sencillo donde esta el codigo necesario solo para los combos, y otra formulario_completo donde esta un formulario comun con mas opciones para usuarios mas avanzados.

    No olvides agregar a tu proyecto las carpetas classes y js, para que tus combos funcionen.

    Espero les guste y les sirva esta adaptacion que hice de ese esplendido ejemplo de combos dependientes. Graphixx.

    Fuente Original:
    http://www.formatoweb.com.ar/blog/20...es-multinivel/

  2. #2
    Recien Nacido

    Fecha de ingreso
    15 sep, 14
    Mensajes
    1
    Gracias
    0
    Agradecido 0 veces en 0 Mensajes

    Predeterminado

    Hola, primero que todo felicitarlos por participar a tod@s los navegastes sobre sus conocimientos.. en verdad muchas gracias.. hace poco ingrese a su foro con el animo de seguir aprendiendo.. sobre este tema tengo dudas.. 1->como haria para pasar de una pagina a otra el nombre de el pais - departamento - municipio, porque hasta ahora solo he logrado que pase el numero mas no el nombre.. 2-> pueden ustedes colocar por favor la base de datos completa sobre la cual tienen el ejemplo completo.. en verdad me ayudaria mucho.. POr todo muchas gracias.

Información de tema

Usuarios viendo este tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Visitantes encuentran esta página buscando por:

combobox dependientes php

select dependiente php

selects dependientes php mysql

select dependientes php mysql

COMO HACER UNA LISTA DEPENDIENTE DE CODIGOS

listas enlazadas php mysql

select dependientes

select dependientes php

combobox dependientes php y mysql

combobox php mysql dependientes

buscador multinivel con php

combos dependientes php mysql

combos dependientes php

COMO HACER UNA LISTA DEPENDIENTE SOBRE CODIGOS

ejemplo de listas dependientes municipios en php

select de paises y ciudades php

combobox dependientes php classes

combobox dependientes php mysql

combos dependientes en php y mysql

combobox estado y municipios en javascript

combos paises y estados en php

como cargar despues de una consulta select dependientes

select dependientes mas resultados

select dependientes e ingreso a base de datos

combobox dependientes de país estado y ciudad con php mysql

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  

Iniciar sesión

Iniciar sesión