Foros del Web » Programando para Internet » Javascript »

Uso del submit

Estas en el tema de Uso del submit en el foro de Javascript en Foros del Web. Tengo un pequeño problema, que espero me ayuden a resolver, porque además seguro que es una tonteria. Tengo un formulario donde existen varios menus desplegables ...
  #1 (permalink)  
Antiguo 12/11/2003, 10:56
 
Fecha de Ingreso: marzo-2003
Mensajes: 9
Antigüedad: 21 años, 1 mes
Puntos: 0
Uso del submit

Tengo un pequeño problema, que espero me ayuden a resolver, porque además seguro que es una tonteria.

Tengo un formulario donde existen varios menus desplegables (combos) que quiero que se vayan recargando según las opciones del anterior.

Tras varios intentos he decidido que la mejor forma es recargar el formulario tras cada uno de los combos que pueda significar cambios en los otros combos mediante la setencia OnChange.

En principio, y en mi desconocimiento utilice la siguiente expresión:
OnChange=This.Form.Submit();
pero lógicamente lo que hizo cuando realice el primer cambio fue enviarme a la pagina de destino que tengo prevista en el formulario cuando se hayan completado todos los datos, en lugar de "recargarme" el formulario con las respuestas ya introducidas.

Podriais indicarme cual es la formula para solucionar el problema.

Un saludo y mi agradecimiento por anticipado.

Víctor.
  #2 (permalink)  
Antiguo 12/11/2003, 14:20
 
Fecha de Ingreso: noviembre-2003
Mensajes: 19
Antigüedad: 20 años, 6 meses
Puntos: 0
mismo problema

Hola amigo lo has solucionado pues tengo el mismo problema
  #3 (permalink)  
Antiguo 12/11/2003, 14:28
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola Victor.

Antes que estar recargando la página en cada cambio de los combos, cosa perfectamente posible si usas location.reload() en lufar del submit que tienes, deberías cargar las opciones de tus combos en arreglos y cambiarlos con JavaScript a medida que el usuario selecciona opciones.

Un ejemplo lo tienes en el FAQ-1, el cual no es muy dificil de adaptar para mas combos.

Saludos.
  #4 (permalink)  
Antiguo 12/11/2003, 14:50
 
Fecha de Ingreso: noviembre-2003
Mensajes: 19
Antigüedad: 20 años, 6 meses
Puntos: 0
menu

Hola !!

La cuestión es que lo que estoy buscando es lo que se muestra en el ejemplo pero con una base de datos de mysql se puede??

Donde puedo buscar información o un ejemplo
  #5 (permalink)  
Antiguo 12/11/2003, 14:56
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Espera que te preparo un ejemplo...
  #6 (permalink)  
Antiguo 12/11/2003, 15:00
 
Fecha de Ingreso: noviembre-2003
Mensajes: 19
Antigüedad: 20 años, 6 meses
Puntos: 0
ok, espero, joder eres muy amable amigo!!!
  #7 (permalink)  
Antiguo 12/11/2003, 15:12
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Prueba esto, lo he ordenado de tal forma que puedas poner al principio los valores que traes desde PHP o desde ASP o desde lo que estes usando del lado del servidor para leer la base de datos.

Código PHP:
<html>
 <
head>
  <
script language="JavaScript">

   
/* Aqui deben estar las opciones del combo principal */
   
var aPaises = new Array(
                           
" ",
                           
"Mexico",
                           
"España",
                           
"Venezuela"
                          
);

   var 
aEstados0 = new Array(
                           
" "
                          
);

   
/* A partir de aqui deben estar las opciones del combo */ 
   /* secundario (un array por cada valor del principal) */
   
var aEstados1 = new Array(
                           
" ",
                           
"Ciudad de México",
                           
"Monterrey",
                           
"Guadalajara"
                          
);

   var 
aEstados2 = new Array(
                           
" ",
                           
"Madrid",
                           
"Barcelona",
                           
"San Sebastián"
                          
);

   var 
aEstados3 = new Array(
                           
" ",
                           
"Caracas",
                           
"Coro",
                           
"Maracay",
                           
"Valencia"
                          
);

   var 
aEstados = new Array(
                          
aEstados0,
                          
aEstados1,
                          
aEstados2,
                          
aEstados3
                          
);

   function 
addOpt(oCntrliPossTxtsVal){
     var 
selOpcion=new Option(sTxtsVal);
     eval(
oCntrl.options[iPos]=selOpcion);
   }

   function 
cambia(oMsteroCntrl){
    var 
nSelected oMster.selectedIndex;
    while (
oCntrl.lengthoCntrl.remove(0);
    for(var 
0aEstados[nSelected].lengthi++)
     
addOpt(oCntrl,  iaEstados[nSelected][i], String(i));
   }

   function 
llena(oCntrl){
    while (
oCntrl.lengthoCntrl.remove(0);
    for(var 
0aPaises.lengthi++)
     
addOpt(oCntrl,  iaPaises[i], String(i));
   }

  
</script>
 </head>
 <body>
  <form name="frm">
   Pais
   <select name="pais" onchange="cambia(this, document.frm.ciudad)">
    <option value=" ">&nbsp;</option>
   </select>
   &nbsp;&nbsp;&nbsp;
   Ciudad
   <select name="ciudad">
    <option value=" ">&nbsp;</option>
   </select>
  </form>
  <script language="JavaScript">
   llena(document.frm.pais);
  </script>
 </body>
</html> 
Saludos.

Última edición por Kaopectate; 12/11/2003 a las 15:13
  #8 (permalink)  
Antiguo 12/11/2003, 15:24
 
Fecha de Ingreso: noviembre-2003
Mensajes: 19
Antigüedad: 20 años, 6 meses
Puntos: 0
Muchas gracias amigo!!!

Digamos que en el primer campo iria los datos de un campo que hay dentro de una tabla:

Código PHP:
while ($row=mysql_fetch_array($result)){
echo 
" $valor ";
echo 
" <option value> ".$row['Pais']." </option> ";

y en función de la opción tendria que elegir de la tabla

SELECT pueblo FROM archivo WHERE Pais='combo1'

No se si me explico. Es que no se como hacerlo
  #9 (permalink)  
Antiguo 12/11/2003, 15:37
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
No compadre, imagínate que tu página tiene que viajar necesariamente con toda la data de todas las opciones metidas en los arreglos, porque una vez en el navegador no hay acceso a las bases de datos. SI necesitas acceder a una tabla en un evento, tendrías que recargar toda la página y eso tarda.

Si los datos son demasiados, por ejemplo los estados de todos los paises del planeta, entonces no uses este enfoque, sino que recarga la página al cambiar el combo principal. Pero si por el contrario, tus opciones no son demasiadas, mándalas todas en los arrays.

En mi ejemplo, tengo tres paises y todos estan en el array aPaises, luego para cada uno de ellos tengo un array con sus estados: aEstados1..aEstados3.

Si fuesen 20 los paises necesitarías 20 arreglos adicionales.

Saludos.
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 16:47.