Foros del Web » Programando para Internet » Javascript »

Carga combos dependiendo del ID.

Estas en el tema de Carga combos dependiendo del ID. en el foro de Javascript en Foros del Web. buenos dias... estoy trantando de hacer un programa que me cargue combos dependiendo del Id del combo anterior es decir.... tengo 2 tablas una llamada ...
  #1 (permalink)  
Antiguo 16/06/2010, 09:44
Avatar de kahb89  
Fecha de Ingreso: marzo-2010
Ubicación: caracas, Venezuela
Mensajes: 57
Antigüedad: 14 años, 1 mes
Puntos: 0
Carga combos dependiendo del ID.

buenos dias... estoy trantando de hacer un programa que me cargue combos dependiendo del Id del combo anterior es decir....

tengo 2 tablas una llamada Areas y otras departamentos, La tabla area debe cargarse dependiendo del departamento al que pertenesca y se relaciona por el Id esta es la estructura de las tablas

Código HTML:
-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 16-06-2010 a las 15:12:36
-- Versión del servidor: 5.1.36
-- Versión de PHP: 5.3.0

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de datos: `inv23`
--

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

--
-- Estructura de tabla para la tabla `areas`
--

CREATE TABLE IF NOT EXISTS `areas` (
  `ID_AREA` varchar(25) NOT NULL,
  `IDDPTO` varchar(50) NOT NULL,
  `NOMBREAREA` varchar(15) NOT NULL,
  PRIMARY KEY (`ID_AREA`,`IDDPTO`),
  KEY `FK_AREAS_REFERENCE_DEPARTAM` (`IDDPTO`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

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


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

--
-- Estructura de tabla para la tabla `departamento`
--

CREATE TABLE IF NOT EXISTS `departamento` (
  `ID_DEPARTAMENTO` varchar(15) NOT NULL,
  `NOMBRE` varchar(50) NOT NULL,
  PRIMARY KEY (`ID_DEPARTAMENTO`)
) ENGINE=InnoDB DEFAULT CHARSET=lat


como veran la tabla areas se relaciona con la tabla departamento por medio de un Id...

Quisiera saber que funcion en javascript me permitiria carga estos combos y que me mantengan la variable para ultilizarla al momentos de cargar los querys y cargar el combo areas cuando el id de la tabla departamentos coincida con el id de un departamento dentro de la tabla departamentos
  #2 (permalink)  
Antiguo 16/06/2010, 12:12
Avatar de yoyoyo82  
Fecha de Ingreso: julio-2009
Ubicación: Springfield
Mensajes: 159
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Carga combos dependiendo del ID.

Hola mira checa este ejemplo a ver si es lo que buscas

1) crear una base de datos (MYSQL) de nombre mibase
2)ejecutar las isntrucciones sql
3)probar el archivo
*********SCRIPT SQL****************
# Tabla departamentos
CREATE TABLE `departamentos` (
`Id` int(6) unsigned NOT NULL auto_increment,
`Id_depto` int(4) NOT NULL default '0',
`nombre_depto` varchar(50) default NULL,
UNIQUE KEY `indice` (`Id`,`Id_depto`)
) TYPE=MyISAM;
INSERT INTO `departamentos` VALUES (1,1,'Contabilidad');
INSERT INTO `departamentos` VALUES (1,2,'Marketing');
INSERT INTO `departamentos` VALUES (1,3,'Bodega Central');
INSERT INTO `departamentos` VALUES (2,1,'Informatica');
INSERT INTO `departamentos` VALUES (2,2,'Ventas');
INSERT INTO `departamentos` VALUES (2,3,'Gerencia');
INSERT INTO `departamentos` VALUES (3,1,'Capacitacion');
INSERT INTO `departamentos` VALUES (3,2,'Abastecimiento');
INSERT INTO `departamentos` VALUES (3,3,'Recursos Humanos');
# Tabla empresas

CREATE TABLE `empresas` (
`Id` int(6) unsigned NOT NULL auto_increment,
`descripcion` varchar(10) default NULL,
PRIMARY KEY (`Id`)
) TYPE=MyISAM;
INSERT INTO `empresas` VALUES (1,'Empresa001');
INSERT INTO `empresas` VALUES (2,'Empresa002');
INSERT INTO `empresas` VALUES (3,'Empesa003');
*********FIN SCRIPT SQL*******************

***********PAGINA PHP********************
<?
$bd_host = "localhost";
$bd_usuario = "localhost";
$bd_password = "";
$bd_base = "mibase";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
$sql = "SELECT * from empresas";
$rs = mysql_query($sql, $con);
?>
<html>
<head>
<title>Documento sin título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p>Seleccion de un select y cambiar los valores de otro select sin tener que submitar (valido segun su uso)</p>
<form name="miformulario" method="get">
<table width="249" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Empresa</td>
<td>Departamento</td>
</tr>
<tr>
<td><select name="empresa" id="empresa" onChange="componer_Centros(this.value)">
<option value="">--Seleccione--</option>
<? if(mysql_num_rows($rs)>0)
{
while($row = mysql_fetch_assoc($rs))
{
?>
<option value="<?=$row["Id"]?>"><?=$row["descripcion"]?></option>
<?
}
}
?>
</select></td>
<td><select name="depto" id="depto">
<option>--seleccione--</option>
</select></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</form>
</body>
</html>
<script>
function componer_Centros(cod_area)
{
//alert(cod_area);
document.miformulario.depto.length=0;
document.miformulario.depto.options[0] = new Option("-- Seleccione --","","defaultSelected","");
var indice=1;
<?
$sql_depto = "SELECT * from departamentos";
$rs_depto = mysql_query($sql_depto, $con);
if(mysql_num_rows($rs_depto)>0)
{
while($row_depto = mysql_fetch_assoc($rs_depto))
{

?>
if(cod_area=='<?=$row_depto["Id"]?>')
{
document.miformulario.depto.options[indice] = new Option("<?=$row_depto["nombre_depto"]?>","<?=$row_depto["Id_depto"]?>");
indice++;
}
<?
}
}
mysql_close($con);
?>
}

</script>
  #3 (permalink)  
Antiguo 18/06/2010, 08:33
Avatar de kahb89  
Fecha de Ingreso: marzo-2010
Ubicación: caracas, Venezuela
Mensajes: 57
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Carga combos dependiendo del ID.

No funciona el codigo ya intente y no... =/
  #4 (permalink)  
Antiguo 18/06/2010, 10:30
Avatar de yoyoyo82  
Fecha de Ingreso: julio-2009
Ubicación: Springfield
Mensajes: 159
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Carga combos dependiendo del ID.

checa si tienes algun error de dedo en tu codigo porque a mi me funciono de maravilla

Etiquetas: carga, combos, dependiendo
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 18:10.