Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/09/2010, 05:13
antoniuskas
 
Fecha de Ingreso: junio-2009
Mensajes: 30
Antigüedad: 14 años, 11 meses
Puntos: 0
Llenar combobox dependiente de los datos de otro combo

Bueno, a ver si va esto aqui, pues aunque el código tiene php y javascript, yo creo que el fallo puede estar en el JavaScript.(tutorial que pille por ahi)
El problema es que carga el primer combo con los datos de la tabla, pero el segundo combo no lo carga en funcion de lo elegido en la primera, bueno, no carga nada con los datos de la otra tabla.
Gracias.
Tengo estas tablas en SQL

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Base de datos: `pruebacombo`

-- Estructura de tabla para la tabla `departamentos`
--

CREATE TABLE IF NOT EXISTS `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`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

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

INSERT INTO `departamentos` (`Id`, `Id_depto`, `nombre_depto`) VALUES
(1, 1, 'Contabilidad'),
(1, 2, 'Marketing'),
(1, 3, 'Bodega Central'),
(2, 1, 'Informatica'),
(2, 2, 'Ventas'),
(2, 3, 'Gerencia'),
(3, 1, 'Capacitacion'),
(3, 2, 'Abastecimiento'),
(3, 3, 'Recursos Humanos');

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

--
-- Estructura de tabla para la tabla `empresas`
--

CREATE TABLE IF NOT EXISTS `empresas` (
`Id` int(6) unsigned NOT NULL AUTO_INCREMENT,
`descripcion` varchar(10) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

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

INSERT INTO `empresas` (`Id`, `descripcion`) VALUES
(1, 'Empresa001'),
(2, 'Empresa002'),
(3, 'Empesa003'),
(4, 'Empresa 04');

====================================
Y este es el codigo PHP y JavaScript
====================================
<?php
$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "";
$bd_base = "pruebacombo";

$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);

$sql = "SELECT * from empresas";
$rs = mysql_query($sql, $con);
echo "el numero de consultas es".mysql_num_rows($rs);

?>
<html>
<head>
<title>Documento sin t&iacute;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 </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>
<?php if(mysql_num_rows($rs)>0)
{

while($row = mysql_fetch_assoc($rs))
{
//echo '<option value="'. $row['Id'].'" '.'>'.$row['Id'].'-'.$row['descripcion'].'</option>';
?>
<option value="<?php echo $row['Id']?>"><?php echo $row['descripcion']?></option>
<?php

}
}

?>
</select></td>
<td><select name="depto" id="depto">
<option>--seleccione--</option>
</select></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</form>
</body>
</html>
<script>
function componer_Centros(cod_area)
{
//alert("hola");
document.miformulario.depto.length=0;
document.miformulario.depto.options[0] = new Option("-- Seleccione --","","defaultSelected","");
var indice=1;
<?php
$sql_depto = "SELECT * from departamentos";
$rs_depto = mysql_query($sql_depto, $con);
if(mysql_num_rows($rs_depto)>0)
{
echo "la cantidad de departamentos".mysql_num_rows($rs_depto);
while($row_depto = mysql_fetch_assoc($rs_depto))
{

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

</script>