Foros del Web » Programando para Internet » Javascript »

Select dinamico pero los datos extraidos de una base de datos

Estas en el tema de Select dinamico pero los datos extraidos de una base de datos en el foro de Javascript en Foros del Web. Como podria hacer un select dinamico, pero que la información que sale sea extraida de una base de datos mysql y que cuando selecciono el ...
  #1 (permalink)  
Antiguo 29/10/2004, 02:35
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 19 años, 7 meses
Puntos: 0
Select dinamico pero los datos extraidos de una base de datos

Como podria hacer un select dinamico, pero que la información que sale sea extraida de una base de datos mysql y que cuando selecciono el primer campo los siguientes se modifiquen segun el primero, y despues con el segundo y asi succesivamente. Ya vi que en el FAQ hay una ayuda pero no hace referencia como hacer a partir de una base de datos.

Muchas Gracias!

Saludos
  #2 (permalink)  
Antiguo 29/10/2004, 03:33
 
Fecha de Ingreso: octubre-2004
Mensajes: 21
Antigüedad: 19 años, 6 meses
Puntos: 1
Tienes que mezclar php con el javascript... Yo tengo hecho algo así, pero el código no es muy claro xD
  #3 (permalink)  
Antiguo 29/10/2004, 04:12
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 19 años, 7 meses
Puntos: 0
Eso ya me lo supongo, pero no se la forma de como hacerlo,ya que ahora solo lo tengo echo con php, y solo me muestra los valores que hay en la bbdd y querria saber como incluir el javascript. Gracias
  #4 (permalink)  
Antiguo 29/10/2004, 05:00
 
Fecha de Ingreso: octubre-2004
Mensajes: 21
Antigüedad: 19 años, 6 meses
Puntos: 1
Mira, te pongo mi código y a ver si sacas algo en claro (Nótese que uso php dentro de javascript):
Código PHP:
<script>
<?

/*
(Para hacerte una idea)
Tabla empresas:
id - nombre
1  - empresa1
2  - empresa2
_________________
Tabala empresas2:
id - id_emp - anyo - dir
1  -   1    - 2003 - EMP103
2  -   1    - 2004 - EMP104
3  -   2    - 2003 - EMP203
4  -   2    - 2004 - EMP203
*/
$sql="SELECT * FROM empresas";
$rsemp=mysql_query($sql);
$empresas=mysql_fetch_array($rsemp);
$primera_emp=$empresas[id];

$sql="SELECT * FROM empresas";
$rsemp=mysql_query($sql);
$cont=1;

//defino una serie de varibles Array para cada empresa
while($empresas=mysql_fetch_array($rsemp))
    {
    
$sql="SELECT * FROM empresas2 where id_emp=$empresas[id] order by anyo asc";
    
$rsemp2=mysql_query($sql);
    
    
$cadena"var empresas_$cont=new Array(";
    while(
$empresas2=mysql_fetch_array($rsemp2))
        {
        
$cadena.= "\"$empresas2[anyo]\", ";
        }
    
    
$cadena .= ")\n";
    
//Para eliminar la última coma
    
$tam=strlen($cadena);
    
$tam=$tam-4;
    
$cadena[$tam]=" ";
    
//
    
echo $cadena;
    
$cont++;
    }

?>

//función que cambia los años del select de anyos en función de la empresa que se haya escogido en el select de empresa.
function cambia_anyos(){
    //tomo el valor del select de la empresa elegida
    var empresa
    empresa = document.f1.empresa[document.f1.empresa.selectedIndex].value
    //miro a ver si la empresa está definida
        
    if (empresa != 0) {
        //si estaba definida, entonces coloco las opciones de los años correspondientes.
        //selecciono el array de anyos adecuado
        mis_anyos=eval("empresas_" + empresa)
        //calculo el numero de anyos
        num_anyos = mis_anyos.length
        //marco el número de anyos en el select
        document.f1.anyos.length = num_anyos
        //para cada anyo del array, lo introduzco en el select
        for(i=0;i<num_anyos;i++){
           document.f1.anyos.options[i].value=mis_anyos[i]
           document.f1.anyos.options[i].text=mis_anyos[i]
           <? if(!$anyos$anyos=2000?>
           if(document.f1.anyos.options[i].text==<? echo $anyos?>)
                   document.f1.anyos.selectedIndex=i
        }
    }else{
        //si no había empresa seleccionada, elimino los anyos del select
        document.f1.anyos.length = 1
        //coloco un guión en la única opción que he dejado
        document.f1.anyos.options[0].value = "-"
        document.f1.anyos.options[0].text = "-"
    }
    //marco como seleccionada la opción primera de empresa
    //document.f1.anyos.options[3].selected = true
}
</script>

En el primer select carga las empresas de la BD:
Código PHP:
<select name="empresa" id="empresa" class="formul" onchange="cambia_anyos()">
      <?
      $sql
="SELECT * FROM empresas";
      
$rsemp=mysql_query($sql);
      
$cont=0;
      while(
$empresas=mysql_fetch_array($rsemp))
          {
      
?>
        <option <? if($empresa==$empresas['id']) echo "selected"?> value="<? echo $empresas['id']; ?>"><? echo $empresas['nombre']; ?></option>
      <?
            
}
      
?>
      </select>
Y el segundo select, simplemente:
Código PHP:
<select name=anyos class="formul">
     <
option value="-" selected>-
</
select

Mira a ver si sacas algo en claro, es que entre que me da pereza explicarlo y que no tengo mucho tiempo ahora...

PD: Una putada que no salgan las sangrias (acabo de descubrir el [PHP], que útil, oyes ;)) Ahora es más fácil de leer

Última edición por ouyeah; 29/10/2004 a las 05:04
  #5 (permalink)  
Antiguo 29/10/2004, 08:05
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 19 años, 7 meses
Puntos: 0
Muchas gracias, intentaré provarlo a ver si me salgo :P assias!
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 17:50.