Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2007, 06:00
Avatar de susaninhax
susaninhax
 
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
problemas con combos dinámicos selectivos

Hola compañeros!!

Estoy usando el script que hay en las faqs para combos selectivos de Kaopectate. Lo he intentado adaptar con php para que sea dinámico. Creo que estoy cerca, pero no logro sacarlo adelante. Alguien me podría hechar una mano para encontrar el error, que hace que no me funcione el segundo combo??????????

Muchas gracias de antemano:os dejo el código:
entre <head>
Código PHP:
<script language="JavaScript"> 

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

   function cambia(oCntrl){ 
    while (oCntrl.length) oCntrl.remove(0); 
    switch (document.frm.provincia.selectedIndex){ 
    /*Hacemos una consulta para sacar todas las poblaciones y las vamos a agrupar por  para que no se repitan, y ordenarlas  ascendentemente.*/
     <?php
     $sql
"select id_provincia 
     from provincias
     group by id_provincia
     order by id_provincia"
;
     
$result=mysql_query("$sql",$link) or die(mysql_error());
     
     
$j=0;
     while(
$row=mysql_fetch_array($result)) 
    { 
        
$id_provincia=$row["id_provincia"];
     
?>
     /* Una vez sacado las provincias, realizamos un bucle para que se vallan imprimiendo en el case, y cada vez que se realiza el bucle muestra la siguiente provincia.*/
     case <?php echo $j$j++; ?>
    /*hacemos una consulta para sacar el nombre de la poblacion y el id  donde coincida provincia con el nombre de la provincia sacada en la anterior consulta para  que no me imprima todos los resultados.*/
     <?php 
     $sql_restaurante
="select id_turismo, poblacion
      from oficinas_turismo
      where id_provincia='$id_provincia'"
;
      
      
$result_restaurante=mysql_query("$sql_restaurante",$link) or die(mysql_error());
    
$n=0
    while(
$row_restaurante=mysql_fetch_array($result_restaurante)) {
        
$id_turismo=$row_restaurante["id_turismo"];
                          
$poblacion=$row_restaurante["poblacion"]; 
        
?>
        /*necesitamos sacar la posición  de las poblaciones para saber su orden, para ello cada vez que se imprime , suma una posición a la poblacion. */
        addOpt(oCntrl, <? echo $n;?>, "<?php echo $poblacion?>", "<?php echo $id_turismo?>");
        <?php $n++; 
      }
?>
      break; 
      <?php 
      
}
      
?>
    } 
   } 
  </script>
</head>

Y el formulario:
Código PHP:
<form action="buscador.php" method="post" name="frm" >
                                        <?php  
    $sql
=("select id_provincia, provincia
    from provincias
    group by provincia
    order by provincia"
);
    
$result=mysql_query("$sql",$link) or die(mysql_error());
    
?> 
        <select  name="provincia" class="campos_formulario" onChange="cambia(document.frm.poblacion)"> 
    <?
    $p
=0;
    while(
$row=mysql_fetch_array($result)) 
    { 
        
$id_provincia=$row["id_provincia"];
        
$provincia=$row["provincia"]; 
        
?> 
<option value="<? echo $provincia$p++; ?>"> <?php echo $provincia?></option>
<?
}
?>
   </select>
        
         <!-- Sacamos la poblacion.-->                        
<?php  
    $sql
=("select poblacion
    from oficinas_turismo
    order by poblacion asc
    limit 1"
);
    
$result=mysql_query("$sql",$link) or die(mysql_error());
    
?> 
        <select name="poblacion" class="campos_formulario" > 
    <? 
    
while($row=mysql_fetch_array($result)) 
    {  
        
$id_turismo=$row["id_turismo"];
        
$poblacion=$row["poblacion"];
        
?> 
            <option value="<? echo $id_turismo?>"> <? echo $poblacion?> </option> 
        <? 
    
?>
   </select>
   
    <input name="poblacion" type="hidden" id="poblacion" value="<?php echo $poblacion?>"> 

        <input name="submit" type="submit" value="Buscar">
        
        </form>
MUCHAS GRACIAS DE ANTEMANO!!!