• Viernes 3 de Mayo de 2024, 12:18

Autor Tema:  Obtención Segundo Select Dinamicamente  (Leído 1195 veces)

Slimer

  • Miembro activo
  • **
  • Mensajes: 59
    • Ver Perfil
Obtención Segundo Select Dinamicamente
« en: Sábado 16 de Octubre de 2004, 15:19 »
0
Hola:

Tengo el siguiente problema.
En principio cargo una página con JavaScript y Php, obteniendo los valores de los select gracias a una BD en MySql.

El primer select consulta una serie de valores y los muestra, pero al segundo select, me tiene que mostrar la resta del valor... Por ejemplo...

El primer Select (desde el 100 hasta el 10), si seleccionamos el 30,,, en el segundo select me tiene que aparecer desde el 70 hasta el 10 (y así sucesivamente)... (siempre sumando como máximo 100).

Esto está conseguido, pero tengo el problema de que el segundo select se me desplega 10 veces (igual que el primer select).. (utilizo la misma variable numérica)...

Despues de toda la explicación mi pregunta sería...

Como puedo contar los espacios que debe mostrar el segundo select???
o sea,,, si seleccioné 30 en el primer select, que en el segundo select solo se me despleguen 7 lineas (y no 10, como hace actualmente con las 3 primeras líneas en blanco)...

Adjunto el código que estoy utilizando...

Código: Text
  1.  
  2.  
  3. <html>
  4. <head>
  5. <title>Consulta de BD con JavaScript y PHP</title>
  6. <head>
  7. <script language="JavaScript">
  8. function funciona() {
  9. numero = porcentajes.length;
  10. document.formulario.select1.length = numero;
  11.  
  12. for (i=0; i<numero; i++){
  13.   document.formulario.select1.options[i].value = valor_por[i];
  14.   document.formulario.select1.options[i].text = porcentajes[i];
  15. }}</script>
  16.  
  17. <script language="JavaScript">
  18. function tessto()                                               {    
  19. var valoracion = parseInt(document.formulario.select1[document.formulario.select1.selectedIndex].value);
  20. var restado = (100 - valoracion);
  21.   if ( valoracion != 100)                                           {
  22.   document.formulario.select2.length = numero;
  23.   for (i=0; i<numero; i++){
  24. if (valor_por[i] <= restado){
  25.   document.formulario.select2.options[i].value = valor_por[i];
  26.   document.formulario.select2.options[i].text = porcentajes[i];
  27. }}}}                                                        
  28. </script>
  29.  
  30. </head>
  31. <body onLoad="funciona()">
  32. <?php
  33. $javascript = "<script language=\"JavaScript\">\n"; //activamos Java dentro de PHP
  34. $javascript .= "   var porcentajes = new Array();\n";  //Creamos el Array vacio
  35. $javascript .= " var valor_por = new Array();\n";  //Creamos otro Array vacio
  36. include("conect.php");  //Incluimos un fichero
  37. $link=Conectarse(); // Nos conectamos a la BD
  38. $porcentajes=mysql_query("select * from porcentaje",$link) or die (mysql_error()); // hacemos consulta y metemos valores en $porc
  39.  
  40. $contador = 0;
  41. while ($elem = mysql_fetch_array($porcentajes)) {
  42.   $javascript .="porcentajes[".$contador."] = ".$elem['porcentaje_n'].";\n"; // asignamos valores al array. Estructura  Array[i] = valor
  43.   $javascript .="valor_por[".$contador."] = ".$elem['porcentaje_v'].";\n";
  44.   $contador++;                                  }
  45. $javascript .= "</script>\n";  //cerramos JavaScript
  46. echo $javascript;
  47. ?>
  48.   <form name="formulario">
  49.   <select name="select1" onchange= "tessto()">
  50.   <!-- option value ="-">- !-->
  51.   
  52.   </select>
  53.   
  54.   <select name="select2">
  55.   </select>
  56.   
  57.   <select name="select3">
  58.   </select>
  59.   
  60.    <select name="select4">
  61.   </select>
  62.   
  63.    <select name="select5">
  64.   </select>
  65.   
  66.   <input type="text" name="texto">
  67.   
  68.   </form>
  69. </body>
  70. </html>
  71.  
  72.  
  73.  

En mi BD tengo una pequeña tabla con 2 campos y 10 registros. desde el valor 100 hasta el 10 (con escalones de 10).

Alguien puede darme alguna idea de como eliminar esas "lineas vacias" al principio de mi segundo select, ajustando los registros a lo esteticamente aceptable???

Muchas gracias de antemano...

Slimer
-----------------------------------------------------
Quien desea aprender, pronto llegará a saber
-----------------------------------------------------