Hola a todos, soy nueva aqui y necesito su ayuda, llevo dias intentando hacer que funcionen una serie de select dependientes en un sistema que estoy comenzando, es en relacion a una empresa y van asi:
REGION>PLANTA>DEPARTAMENTO>CARGO
Es decir, que las plantas se filtren de acuerdo a la Region seleccionada anteriormente, luego se muestren los Departamentos de esa Planta, y luego los cargos o tipo de trabajadores de ese departamento en concreto. El problema es que solo logro mostrar las regiones, y no comprendo donde esta el error. Es urgente resolverlo :S
De antemano muchas Graciass... se que me ayudarán...:)
Aca les dejo los fragmentos de codigos:
Index.php:
<script>
function requerir(){
try{
req= newXMLHttpRequest();}
catch(err1){
try{
req= newActiveXObject("Microsoft.XMLHTTP");
}
catch(err2){
try{
req= newActiveXObject("Msxml2.XMLHTTP");
}catch(err3){
req= false;
}
}
}
return req;
}
var peticion= requerir();
function busca_planta()
{
var aleatorio= parseInt(Math.random()*999999999);
valor= $(this).val();
// valor= document.getElementByID("region").value;
var url="planta.php?valor="+valor+"&r="+aleatorio;
peticion.open("POST",url,true);
peticion.onreadystatechange= respuesta_Planta();
peticion.setRequestHeader('Content-type','application/x-www-form-urlencoded');
peticion.send(null);
}
function respuesta_planta(){
if( peticion.readyState==4){
if(peticion.status==200){
document.getElementByID("plantas").innerHTML=petic ion.responseText;
}else{
alert("ha ocurrido un error"+peticion.statusText);
}
}
}
var peticion1= requerir();
function busca_depa()
{
var aleatorio= parseInt(Math.random()*999999999);
valor=
valor= document.getElementByID("plantas").value;
var url="departamento.php?valor="+valor+"&r="+aleatori o;
peticion1.open("POST",url,true);
peticion1.onreadystatechange= respuesta_depa();
peticion1.setRequestHeader('Content-type','application/x-www-form-urlencoded');
peticion1.send(null);
}
function respuesta_depa(){
if( peticion1.readyState==4){
if(peticion1.status==200){
document.getElementByID("depas").innerHTML=peticio n1.responseText;
}else{
alert("ha ocurrido un error"+peticion1.statusText);
}
}
}
var peticion2= requerir();
function busca_cargo()
{
var aleatorio= parseInt(Math.random()*999999999);
valor= document.getElementByID("depas").value;
var url="cargo.php?valor="+valor+"&r="+aleatorio;
peticion2.open("POST",url,true);
peticion2.onreadystatechange= respuesta_depa();
peticion2.setRequestHeader('Content-type','application/x-www-form-urlencoded');
peticion2.send(null);
}
function respuesta_depa(){
if( peticion2.readyState==4){
if(peticion2.status==200){
document.getElementByID("cargos").innerHTML=petici on2.responseText;
}else{
alert("ha ocurrido un error"+peticion2.statusText);
}
}
}
</script>
<form action="#" method="POST" class="form-horizontal">
<h3>A Quién desea enviar?</h3>
<label for="region">País/Estado </label>
<?php
$region= mysql_query("SELECT id, nombre,pais FROM region order by pais");
?>
<select name="region" id="region" onchange="busca_planta(this.value)" class="form-control">
<option>Seleccione</option>
<?php
while ($fila = mysql_fetch_array($region)){?>
<option value="<?php echo $fila['id'];?>"><?php echo $fila['pais'].' / '.$fila['nombre'];?></option>
<?php }?>
</select>
<div id="plantas">
<label>Planta </label>
<select id='plantas' class="form-control">
<option value="0">Seleccione</option>
</select>
</div>
<div id="depas">
<label>Departamento </label>
<select id='depas' class="form-control">
<option value="0">Seleccione</option>
</select>
</div>
<div id="cargos">
<label>Tipo de Cargo </label>
<select id='cargos' class="form-control">
<option value="0">Seleccione</option>
</select>
</div>
</form>
PLANTA.php:
<?php
require'config.php';
$valor=$_POST['valor'];
$planta= mysql_query("SELECT id,codigo,nombre FROM planta WHERE id_region='$valor'");
echo '<select id="plantas" name="plantas" onChange="busca_depa()">';
echo'<option value="">Seleccione</option>';
while ($fila = mysql_fetch_array($planta)){
echo '<option value="'.$fila['id'].'">'.$fila['nombre'].'</option>';
}
echo'</selct>';?>
DEPARTAMENTO.php:
<?php
require'config.php';
$valor=$_POST['valor'];
$consulta= mysql_query("SELECT id_depa FROM depaxplanta WHERE id_planta='$valor'");
while($row= mysql_fetch_array($consulta)){
$depa= mysql_query("SELECT id,codigo,nombre FROM departamento WHERE id='$row[id_depa]'");
echo '<select id="depas" name="depas" onChange="busca_cargo()>';
echo'<option value="">Seleccione</option>';
while($fila= mysql_fetch_array($depa)){
echo '<option value="'.$fila['id'].'">'.$fila['nombre'].'</option>';
}
}echo'</selct>';?>
CARGO.php:
<?php
require'config.php';
$valor=$_POST['valor'];
$cargo= mysql_query("SELECT cargo FROM persona WHERE id_depa='$valor'");
echo '<select>';
echo'<option value="">Seleccione</option>';
while ($fila = mysql_fetch_array($cargo)){
echo '<option value="'.$fila['cargo'].'">'.$fila['cargo'].'</option>';
}
echo'</select>;'?>
ESTOY INCLUYENDO jquery-chained.js Y jquery.js
LAS TABLAS MYSQL SON:
REGION(id, nombre, pais)
PLANTA (id, codigo, nombre,id_region)
DEPARTAMENTO(id,codigo,nombre)
depaxplanta( id_depa, id_planta) --->relacion entre departamento y planta
PERSONA(id, cedula,nombre,cargo)