Ver Mensaje Individual
  #10 (permalink)  
Antiguo 12/02/2005, 07:32
daniph
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 22 años, 8 meses
Puntos: 0
Hola

He conseguido hacerlo de esta manera;

Código PHP:
<html> 
<head> 
<?
include ('../config.inc.php');

//Conexion a la base de datos
$conex mysql_connect($host$user$password);

//Seleccion de la base de datos
mysql_select_db($bd$conex);

$cons "SELECT * FROM elinks_cat";
$result mysql_query($cons,$conex);  
?>
  <script language="JavaScript"> 
    aCateg = new Array();
    aCateg[0] = " ";
    <? 
    $y
=1;    
    while(list(
$cid$categoria) = mysql_fetch_row($result)) 
      {
    
?>
    aCateg[<?= trim($y); ?>] = "<?= trim($categoria); ?>"
    <?
        $y 
$y 1;    
     }
    
?>     
   var aSubcateg0 = new Array( 
                           " " 
                          ); 

<?
//Subcategorias  
    
$cons "SELECT * FROM elinks_cat";
    
$result mysql_query($cons,$conex);      
     while(list(
$cid$categoria) = mysql_fetch_row($result)) 
      {
    
?>
    aSubcateg<?= trim($cid); ?> = new Array();
    aSubcateg<?= trim($cid); ?>[0] = " ";
    <?      
      $cons2 
"SELECT * FROM elinks_subcat WHERE cid = $cid";
      
$result2 mysql_query($cons2,$conex);
      
$z=1;
       while(list(
$sid$cid$subcategoria) = mysql_fetch_row($result2)) 
        {
            
?>
                aSubcateg<?= trim($cid); ?>[<?= trim($sid); ?>] = "<?= trim($subcategoria); ?>"   
            <?
        $z 
$z 1;            
        }    
    
mysql_free_result($result2);
    }
 
mysql_free_result($result);
?>


   /* Arma un arreglo general de estados a partir de los arreglos  */ 
   /* anteriores. Es importante que cada arreglo comience por un   */ 
   /* valor en blanco y que el primer arreglo de ciudades, llamado */ 
   /* aqui aSubcateg0, no contenga ningún elemento.                 */ 
   var aSubcateg = new Array( 
                          aSubcateg0, 
                          aSubcateg1, 
                          aSubcateg2, 
                          aSubcateg3,
                          aSubcateg4,
                          aSubcateg5,
                          aSubcateg6,
                          aSubcateg7,
                          aSubcateg8,
                          aSubcateg9 
                          ); 

   function opcion(oCntrl, iPos, sTxt, sVal){ 
     var selOpcion=new Option(sTxt, sVal); 
         eval(oCntrl.options[iPos]=selOpcion); 
   } 

   function cambia(oMster, oCntrl){ 
    var nSelected = oMster.selectedIndex; 
    while (oCntrl.length) oCntrl.remove(0); 
    for(var i = 0; i < aSubcateg[nSelected].length; i++) 
     opcion(oCntrl,  i, aSubcateg[nSelected][i], String(i)); 
   } 

   function llena(oCntrl){ 
    while (oCntrl.length) oCntrl.remove(0); 
    for(var i = 0; i < aCateg.length; i++) 
         opcion(oCntrl,  i, aCateg[i], String(i));      
   } 

  </script> 
</head> 
<body> 
  <form name="frm"> 
   Pais 
   <select name="categoria" onchange="cambia(this, document.frm.subcategoria)"> 
    <option value=" ">&nbsp;</option> 
   </select> 
   &nbsp;&nbsp;&nbsp; 
   Categoria 
   <select name="subcategoria"> 
    <option value=" ">&nbsp;</option> 
   </select> 
    <input type="submit" value="Enviar" name="B1">   
  </form> 
  <script language="JavaScript"> 
   llena(document.frm.categoria); 
  </script> 
</body> 
</html>
Pero hay un problema, en la lista subcategoria, me aparecen muchos espacios en blanco, entiendo que esas posiciones no estan definidas en los arrays, ¿como podria desaparecer esos espacios?

Gracias