Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/04/2014, 14:40
snowdogs
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 15 años
Puntos: 1
Exclamación Combos Anidados

Buenas tardes, espero me puedan ayudar, tengo el siguiente codigo para realizar unos combos anidados y luego guardarlos a la base de dato, el problema es que solo me muestra los datos del primero combo, los demas me los deberia mostrar depende de lo que seleccione en el primero, y el 3ro depende de lo que seleccione en el 2do.

El codigo que tengo es el siguiente:

Archivo f_agregaequipo.php

Código PHP:
<?php
  
include "Conexion.php";
?>

<html>
<head><title>SISTEMA DE INVENTARIO</title>
<script type="text/javascript" language="javascript" src="funciones.js"></script>

</head>
<body onload="limpiar()">

<center>
<h1><font color="green">Recepcion de Equipo</font></h1>
<hr />
<form name="f_agregaequipo" method='post' action="agregaequipo.php">

<table border="10">
<tr>
  
</tr><tr>
<td>Fabricante:</td>
<td>
<div id="fabricante">
   <select name="fabricante" onchange="from(document.f_agregaequipo.fabricante.value,'producto','combproducto.php')"> 
       <option selected  disabled> </option>

    

<?php
        
          $sql
="select * from t_fabricante order by fabricante asc";
          
$res=mysql_query($sql,$con);
          
          while (
$reg=mysql_fetch_array($res))

    

  {

    

  
?>
             <option value="<?php echo $reg["cod_fabricante"];?>"><?php echo $reg["fabricante"];?></option>
          <?php

    

  
}
        
?>
     </select> 
</div>  
</td>
</tr><tr> 
 
<td>Producto:</td>
  <td>
   <div id="producto"> 
     <select name="producto">
       <option selected  disabled> </option>
     </select>  
   </div>
  </td>
</tr><tr>  
 
<td>Modelo:</td>
  <td>
   <div id="modelo"> 
     <select name="modelo">
       <option selected  disabled> </option>
     </select>  
   </div>
  </td>
</tr><tr>    

 <td>Serial:</td>
   <td>
     <input type="text" name="serial" size="30" maxlength="30" />
   </td>
 </tr><tr>

<td>Ubication:</td>
   <td>
     <input type="text" name="ubicacion" size="30" maxlength="30" />
   </td>
 </tr><tr>

<td>Rack:</td>
   <td>
     <input type="text" name="rack" size="30" maxlength="30" />
   </td>
 </tr><tr>

<td>Bin:</td>
   <td>
     <input type="text" name="bin" size="30" maxlength="30" />
   </td>
 </tr><tr>

<td>Date:</td>
   <td>
     <input Disabled name="fecha" value="<?php echo date("m/d/Y H:i:s"); ?>" size="15" />
     
   </td>
 </tr><tr>

   <td><input type="submit" value="Enviar"/></td>
   <td><input type ="reset" value = "reetablecer"> </td>

</tr>
</table>

</form>
</center>
<br /><hr />
</body>
</html>
Archivo combproducto.php

Código PHP:
<?php

    

include "Conexion.php";

    

$sql="select * from t_producto where cod_fabricante=".$_POST["id"]."";

    

$res=mysql_query($sql,$con); 
?>
<select name="producto" onchange="from(document.f_agregaequipo.producto.value,'modelo','combmodelo.php')"> 
   <option selected  disabled> </option>
   <?php

    

while ($reg=mysql_fetch_array($res))

    

{

    

?>

    

<option value="<?php echo $reg["cod_producto"];?>"><?php echo $reg["producto"];?></option>

    

<?php

    

}
   
?>
</select>
Archivo combmodelo.php

Código PHP:
<?php

    

include "Conexion.php";

    

$sql="select * from t_modelo where cod_producto=".$_POST["id"]."";

    

$res=mysql_query($sql,$con); 
?>
<select name="modelo"> 
  <option selected  disabled> </option>
   <?php

    

while ($reg=mysql_fetch_array($res))

    

{

    

?>

    

<option value="<?php echo $reg["cod_modelo"];?>"><?php echo $reg["modelo"];?></option>

    

<?php

    

}
   
?>
</select>
Archivo agregaequipo.php

Código PHP:
<?php 
  
// Se establece la conexión con la fuente de datos
  
$con mysql_connect("localhost""root""123");
  
// Si no hay conexión, se emite un error y se aborta
  
if (!$con)   
     die (
"Error en la conexión con el gestor");
  
mysql_select_db("inventario") or die("Error en la Base de Datos");

// Utilizamos el codigo del Fabricante tomado del select y los utilizamos para buscar el nombre del fabricante.
  
$cod_fabricante $_POST["fabricante"];
  
$sql "SELECT fabricante FROM t_fabricante WHERE cod_fabricante = $cod_fabricante";
  
$res1 =  mysql_query($sql,$con);
  while (
$reg=mysql_fetch_array($res1)){  
     
$fabricante $reg["fabricante"];
  }

// Utilizamos el codigo del Producto tomado del select y los utilizamos para buscar el nombre del Producto.
  
$cod_producto $_POST["producto"];
  
$sql "SELECT producto FROM t_producto WHERE cod_producto = $cod_producto";
  
$res2 =  mysql_query($sql,$con);
  while (
$reg=mysql_fetch_array($res2)){  
     
$producto $reg["producto"];
  } 

// Utilizamos el codigo del Modelo tomado del select y los utilizamos para buscar el nombre del Modelo.
  
$cod_modelo $_POST["modelo"];
  
$sql "SELECT modelo FROM t_modelo WHERE cod_modelo = $cod_modelo";
  
$res3 =  mysql_query($sql,$con);
  while (
$reg=mysql_fetch_array($res3)){  
     
$modelo $reg["modelo"];
  } 

  
$insertar ="INSERT INTO t_agregaequipo VALUES ('$fabricante','$producto','$modelo','$_POST[serial]','$_POST[ubicacion]','$_POST[rack]','$_POST[bin]','$_POST[fecha]')";
  

      
  
// Se solicita la ejecución de la nueva instrucción (Insert) 
  
$resultado mysql_query($insertar);
  
  
// Se cierra la conexión
  
mysql_close();
  require(
'f_agregaequipo.php');
?>
Y por ultimo el archivo funciones.js que me esta dando un error en la linea 34 donde esta: var vinculo=url

El codigo es el siguiente:

Código Javascript:
Ver original
  1. function obtiene_http_request()
  2. {
  3. var req = false;
  4. try
  5.   {
  6.     req = new XMLHttpRequest(); /* p.e. Firefox */
  7.   }
  8. catch(err1)
  9.   {
  10.   try
  11.     {
  12.      req = new ActiveXObject("Msxml2.XMLHTTP");
  13.   /* algunas versiones IE */
  14.     }
  15.   catch(err2)
  16.     {
  17.     try
  18.       {
  19.        req = new ActiveXObject("Microsoft.XMLHTTP");
  20.   /* algunas versiones IE */
  21.       }
  22.       catch(err3)
  23.         {
  24.          req = false;
  25.         }
  26.     }
  27.   }
  28. return req;
  29. }
  30. var miPeticion = obtiene_http_request();
  31. //***************************************************************************************
  32. function from(id,ide,url){
  33.       var mi_aleatorio=parseInt(Math.random()*99999999);//para que no guarde la página en el caché...
  34.       var vinculo=url "?id=" id "&rand=" mi_aleatorio;
  35.       //alert(vinculo);
  36.       miPeticion.open("GET",vinculo,true);//ponemos true para que la petición sea asincrónica
  37.       miPeticion.onreadystatechange=miPeticion.onreadystatechange=function(){
  38.                if (miPeticion.readyState==4)
  39.                {
  40.                //alert(miPeticion.readyState);
  41.                        if (miPeticion.status==200)
  42.                        {
  43.                                 //alert(miPeticion.status);
  44.                                //var http=miPeticion.responseXML;
  45.                                var http=miPeticion.responseText;
  46.                                document.getElementById(ide).innerHTML= http;
  47.  
  48.                        }
  49.                }/*else
  50.                {
  51.          document.getElementById(ide).innerHTML="<img src='ima/loading.gif' title='cargando...' />";
  52.  
  53.                 }*/
  54.        }
  55.        miPeticion.send(null);
  56.  
  57. }
  58. //************************************************************************************************
  59. function limpiar()
  60. {
  61.    document.form.reset();
  62.    
  63. }

Espero me puedan ayudar, se los agradeceria enormemente.