aqui tienes una alternativa para hacer combos (select) dependientes, para ello use jquery, espero sea de tu ayuda.
primero hacemos nuestra clase:
bd.php
Código PHP:
<?php
class BD{
var $cn;
function __construct($servidor="localhost", $usuario="root", $clave="juver", $base="test"){
$this->cn = mysql_connect($servidor, $usuario, $clave);
mysql_select_db($base, $this->cn);
ini_set('display_errors','On');
}
function consulta($sql){
$res = mysql_query($sql, $this->cn) or die("Error <b><br>".mysql_error()."</b><br>$sql");
if(!$res){
die("query error.");
}else{
return $res;
}
}
function fetch_assoc($resultado){
return mysql_fetch_assoc($resultado);
}
}
?>
Luego el Index.php
Código PHP:
<?php
include ("bd/bd.php");
$obj_bd = new BD();
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Select dependientes</title>
<script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
function cargarcombos(combo, url){
$(combo).html("<option selected>Cargando...</option>");
var php = url;
$.post(php,function(respuesta){
$(combo).html(respuesta);
});
}
</script>
</head>
<body>
<select name="region" id="region" onchange="cargarcombos('#plantas', 'combos.php?id_region=' + this.value + '&modo=plantas')">
<option value="">Seleccione Region</option>
<?php
$sql = $obj_bd->consulta("SELECT id, nombre, pais FROM region order by pais, nombre");
while($fila=$obj_bd->fetch_assoc($sql)){?>
<option value="<?php echo $fila['id'];?>"><?php echo $fila['pais'].' / '.$fila['nombre'];?></option>
<?php }?>
</select>
<select name="plantas" id="plantas" onchange="cargarcombos('#depas', 'combos.php?id_planta=' + this.value + '&modo=depas')">
<option value="">Seleccione Planta</option>
</select>
<select name="depas" id="depas" onchange="cargarcombos('#cargos', 'combos.php?id_depa=' + this.value + '&modo=cargos')">
<option value="">Seleccione Departamento</option>
</select>
<select name="cargos" id="cargos">
<option value="">Seleccione Cargo</option>
</select>
</body>
</html>
y por ultimo nuestro archivo combos.php
Código PHP:
<?php
include("bd/bd.php");
$obj_bd = new BD();
$modo = $_REQUEST['modo'];
if ($modo=="plantas"){
$id_region = $_REQUEST['id_region'];
echo '<option value="">Seleccione Planta</option>';
$sql = $obj_bd->consulta("SELECT id, codigo, nombre FROM planta WHERE id_region='$id_region'");
while($fila=$obj_bd->fetch_assoc($sql)){
echo '<option value="'.$fila['id'].'">'.$fila['nombre'].'</option>';
}
}elseif ($modo=="depas"){
$id_planta = $_REQUEST['id_planta'];
echo '<option value="">Seleccione Departamento</option>';
$sql = $obj_bd->consulta("SELECT id, codigo, nombre FROM departamento WHERE id_planta='$id_planta'");
while($fila=$obj_bd->fetch_assoc($sql)){
echo '<option value="'.$fila['id'].'">'.$fila['nombre'].'</option>';
}
}
?>
Saludos.