Foros del Web » Programando para Internet » PHP »

Combos Anidados

Estas en el tema de Combos Anidados en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 21/04/2014, 14:40
 
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.
  #2 (permalink)  
Antiguo 22/04/2014, 06:01
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 16 años, 1 mes
Puntos: 36
Respuesta: Combos Anidados

Llegate por esta URL, aqui deje como hacer combos anidados de tres niveles, toma la idea y adaptalo a tus necesidades.

http://www.forosdelweb.com/f18/aport...veles-1090358/

Etiquetas: anidados, combos, fecha, html, mysql, select, sql
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 13:40.