Foros del Web » Programando para Internet » PHP »

combobox anidados sin recargar en php

Estas en el tema de combobox anidados sin recargar en php en el foro de PHP en Foros del Web. Doy gracias de ante mano a las personas que usen este codigo y pongan de referencia a mi persona por ser el creador del codigo... ...
  #1 (permalink)  
Antiguo 07/06/2008, 15:40
 
Fecha de Ingreso: abril-2008
Mensajes: 4
Antigüedad: 16 años, 7 meses
Puntos: 1
combobox anidados sin recargar en php

Doy gracias de ante mano a las personas que usen este codigo y pongan de referencia a mi persona por ser el creador del codigo...

Omar Yony Ramos Rojas para servirles....


__________________________________________________ _______________
BASE DE DATOS "combo" esta en Mysql
__________________________________________________ _______________

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

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

CREATE TABLE `dep` (
`iddep` int(10) unsigned NOT NULL auto_increment,
`pais_idp` int(10) unsigned NOT NULL,
`departamento` varchar(25) default NULL,
PRIMARY KEY (`iddep`),
KEY `dep_FKIndex1` (`pais_idp`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

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

INSERT INTO `dep` (`iddep`, `pais_idp`, `departamento`) VALUES
(1, 1, 'Puno'),
(2, 1, 'arequipa'),
(3, 2, 'cordoba'),
(4, 2, 'San Luis');

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

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

CREATE TABLE `distrito` (
`dep_iddep` int(10) unsigned NOT NULL,
`distrito` varchar(12) NOT 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` (
`idp` int(10) unsigned NOT NULL auto_increment,
`pais` varchar(25) default NULL,
PRIMARY KEY (`idp`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- 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_1` FOREIGN 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_1` FOREIGN KEY (`dep_iddep`) REFERENCES `dep` (`iddep`) ON DELETE NO ACTION ON UPDATE NO ACTION;

CODIGO DE CONEXION DE LA BASE DE DATOS ARCHIVO "mysql.php"
Código PHP:
<?php 
class MySQL
public 
$cont=0;
private 
$conexion
private 
$total_consultas
public function 
MySQL(){ 
if(!isset(
$this->conexion)){ 
$this->conexion = (mysql_connect("localhost","root","")) or die(mysql_error()); 
mysql_select_db("combo",$this->conexion) or die(mysql_error()); 


public function 
consulta($consulta){ 
$this->total_consultas++; 
$resultado mysql_query($consulta,$this->conexion); 
if(!
$resultado){ 
echo 
'MySQL Error: ' mysql_error(); 
exit; 

return 
$resultado

public function 
fetch_array($consulta){ 
return 
mysql_fetch_array($consulta); 

public function 
num_rows($consulta){ 
return 
mysql_num_rows($consulta); 

public function 
getTotalConsultas(){ 
return 
$this->total_consultas

}
?>
CODIGO DEL COMBOBOX DINAMICO EN ESTE CASO SE USO 3 PERO COMO PORDRAN VER SE PUEDEN AUMENTAR CUANTAS QUIERAN DEPENDIENDO DE LOS REQUERIMIENTOS EL ARCHIVO "combobox.php"

Código PHP:
<?php include("mysql.php");

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

$pais=$_POST['pais'];
$departamentos=$_POST['departamentos'];
$distrito=$_POST['distrito'];

echo 
'<select name="pais" onChange="submit()" style="position:absolute;left:14px;top:5px;width:1 86px;font-family:Times New Roman;font-size:16px;z-index:0">';
if (
$db->num_rows($consulta_pais)>0){
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()" style="position:absolute;left:14px;top:35px;width: 186px;font-family:Times New Roman;font-size:16px;z-index:1">';
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()"style="position:absolute;left:1 4px;top:65px;width:186px;font-family:Times New Roman;font-size:16px;z-index:2">';
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>';
?>
Cualquier duda preguntar en el foro.
  #2 (permalink)  
Antiguo 07/06/2008, 16:14
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Respuesta: combobox anidados sin recargar en php

Por favor no dupliques temas... Omar. Se han borrado al menos otros dos tópicos aparte de este y el que se deja abierto. Gracias por el aporte, con una ves basta.

En este tema dices es sin recargar la página, pero veo submits sin mayores modificación (por lo que sí se recargaría), además, en un vistazo rápido, no encuentro diferencia en el código respecto a tu otro tema donde hacen la mención de utilizar AJAX.

Si sí hay modificaciones te agradecería me hicieras favor de hacérmelas notar por mensaje privado y reabrir o modificar tu tema. De lo contrario, continua en:
http://www.forosdelweb.com/f18/combo...idados-575482/
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 13:06.