Foros del Web » Programando para Internet » PHP »

Mejorar Combobox PHP

Estas en el tema de Mejorar Combobox PHP en el foro de PHP en Foros del Web. Hola este codigo pertenece a omar funciona pero falta algunos arreglos alguien puede ayudarme. Código PHP: -- -------------------------------------------------------- --  --  Estructura de tabla para la tabla  ` dep ` --  CREATE TABLE  ...
  #1 (permalink)  
Antiguo 17/01/2010, 14:22
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Mejorar Combobox PHP

Hola este codigo pertenece a omar funciona pero falta algunos arreglos alguien puede ayudarme.

Código PHP:
-- --------------------------------------------------------

-- 
-- 
Estructura de tabla para la tabla `dep`
-- 

CREATE TABLE `dep` (
  `
iddepint(10unsigned NOT NULL auto_increment,
  `
pais_idpint(10unsigned NOT NULL,
  `
departamentovarchar(25) default NULL,
  
PRIMARY KEY  (`iddep`),
  
KEY `dep_FKIndex1` (`pais_idp`)
ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=;

-- 
-- 
Volcar la base de datos para la tabla `dep`
-- 

INSERT INTO `dep` (`iddep`, `pais_idp`, `departamento`) VALUES 
(11'Puno'),
(
21'arequipa'),
(
32'cordoba'),
(
42'San Luis');

-- --------------------------------------------------------

-- 
-- 
Estructura de tabla para la tabla `distrito`
-- 

CREATE TABLE `distrito` (
  `
dep_iddepint(10unsigned NOT NULL,
  `
distritovarchar(12NOT NULL,
  
KEY `distrito_FKIndex1` (`dep_iddep`)
ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- 
-- 
Volcar la base de datos para la tabla `distrito`
-- 

INSERT INTO `distrito` (`dep_iddep`, `distrito`) VALUES 
(1'Juliaca'),
(
1'Puno'),
(
1'huancane'),
(
1'azangaro'),
(
3'santo tome'),
(
3'santiago'),
(
3'Chaco'),
(
3'San Rafael');

-- --------------------------------------------------------

-- 
-- 
Estructura de tabla para la tabla `pais`
-- 

CREATE TABLE `pais` (
  `
idpint(10unsigned NOT NULL auto_increment,
  `
paisvarchar(25) default NULL,
  
PRIMARY KEY  (`idp`)
ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=;

-- 
-- 
Volcar la base de datos para la tabla `pais`
-- 

INSERT INTO `pais` (`idp`, `pais`) VALUES 
(1'peru'),
(
2'argentina');

-- 
-- 
Filtros para las tablas descargadas (dump)
-- 

-- 
-- 
Filtros para la tabla `dep`
-- 
ALTER TABLE `dep`
  
ADD CONSTRAINT `dep_ibfk_1FOREIGN KEY (`pais_idp`) REFERENCES `pais` (`idp`) ON DELETE NO ACTION ON UPDATE NO ACTION;

-- 
-- 
Filtros para la tabla `distrito`
-- 
ALTER TABLE `distrito`
  
ADD CONSTRAINT `distrito_ibfk_1FOREIGN KEY (`dep_iddep`) REFERENCES `dep` (`iddep`) ON DELETE NO ACTION ON UPDATE NO ACTION
Código PHP:
<?php include("mysql.php");

$db = new MySQL();
$consulta_pais $db->consulta("SELECT * FROM pais");  
echo 
'<html>';
echo 
'<form method="post" action="">'

echo 
'<select name="pais"   onChange="submit()">';
if (
$db->num_rows($consulta_pais)>0){
$pais=$_POST['pais'];
$departamentos=$_POST['departamentos'];
$distrito=$_POST['distrito'];
echo 
"<option value='$pais'>".$pais.'</option>"';
while (
$resultado=$db->fetch_array($consulta_pais)){ echo '<option value= "'.$resultado['pais'].'">'.$resultado['pais'].'</option>';
}
}
echo 
'</select>';
echo 
'<br>';
                                
$consulta_cod_pais $db->consulta("SELECT idp FROM pais WHERE pais='$pais'");
$resultado_cod_pais=$db->fetch_array($consulta_cod_pais);
$cod_pais=$resultado_cod_pais['idp'];
$consulta_departamento $db->consulta("SELECT * FROM dep where pais_idp='$cod_pais'");
    
    
echo 
'<select name="departamentos"   onChange="submit()">';
if (
$db->num_rows($consulta_departamento)>0){
echo 
"<option value= '$departamentos'>".$departamentos.'</option>';
while (
$resultado=$db->fetch_array($consulta_departamento)){ echo '<option value= "'.$resultado['departamento'].'">'.$resultado['departamento'].'</option>';
}
}
echo 
'</select>';
echo 
'<br>';
            
$consulta_cod_departamento $db->consulta("SELECT iddep FROM dep WHERE departamento='$departamentos'");
$resultado_cod_departamento=$db->fetch_array($consulta_cod_departamento);
$cod_departamento=$resultado_cod_departamento['iddep'];
$consulta_distrito $db->consulta("SELECT * FROM distrito where dep_iddep='$cod_departamento'");
            
            
echo 
'<select name="distrito" onChange="submit()">';
if (
$db->num_rows($consulta_distrito)>0){
echo 
"<option value= '$distrito'>".$distrito.'</option>';
while (
$resultado=$db->fetch_array($consulta_distrito)){ echo '<option value= "'.$resultado['distrito'].'">'.$resultado['distrito'].'</option>';
}
}
echo 
'</select>';
        
echo 
'</html>';
echo 
'</form>';
?>

[PHP]

Ejemplo:

Primera seleccion:
Pais-------Departamento-----Distrito
Peru------------Puno-------Juliaca

Segunda seleccion:
Pais-------Departamento-----Distrito
Agentina------------Puno-------Juliaca


Si notas al seleccionar el segundo pais, sigue saliendo los datos de la primera seleccion, como hacer para que salga solo lo seleccionado.

Etiquetas: combobox, mejoras
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 22:41.