Foros del Web » Programando para Internet » Javascript »

Formulario con campos que varían

Estas en el tema de Formulario con campos que varían en el foro de Javascript en Foros del Web. Saludos: Me gustaria saber como puedo crear un formulario (de preferencia en Dreamweaver, que es lo que manejo) en que tenga un menú de salto, ...
  #1 (permalink)  
Antiguo 22/07/2005, 20:13
 
Fecha de Ingreso: marzo-2005
Mensajes: 76
Antigüedad: 19 años, 1 mes
Puntos: 0
Formulario con campos que varían

Saludos:
Me gustaria saber como puedo crear un formulario (de preferencia en Dreamweaver, que es lo que manejo) en que tenga un menú de salto, y al elegir una de sus opciones, cambian los campos que siguen del formulario, por ejemplo si elijo en el menú de salto: comentario, que abajo aparezca un campo para reyenar con texto llamado comentarios, si elijo cotizar, que aparezcan abajo campos en que diga por ej: nº de productos, producto, etc.

Agradeciendo de antemano:
Sepalaur

Última edición por tunait; 23/07/2005 a las 02:20
  #2 (permalink)  
Antiguo 23/07/2005, 02:24
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Qué tal Sepalaur,

por favor, no abras más mensajes nuevos preguntando lo mismo. Si no te responden en este ten paciencia o vuelve a solicitar en este mismo pero no abras otro nuevo (has abierto 3 iguales).

Comentarte también que en tu panel de control tienes un espacio para insertar una firma por defecto. Pon allá la firma que quieras pero no la insertes dentro de los mensajes.

Un saludo
  #3 (permalink)  
Antiguo 23/07/2005, 05:34
 
Fecha de Ingreso: julio-2002
Mensajes: 322
Antigüedad: 21 años, 9 meses
Puntos: 0
Eso tendras que programarlo en javascript, con dreamweaver directamente no se puede hacer.
__________________
Saludos

Rubén
Teléfonos móviles, curiosidades: http://telefonos-moviles.muchodenada.com/
  #4 (permalink)  
Antiguo 23/07/2005, 10:17
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Tres formas:

-Por ASP.
-Por Capas (CSS).
-Por JavaScript (DOM).
  #5 (permalink)  
Antiguo 23/07/2005, 15:26
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 5 meses
Puntos: 45
Voto por hacerlo por Capas:

Imaginate que tienes 3 modalidades: creas tres capas. En cada capa pones cada modalidad. En una pones el formulario de cotizaciones.. en otra comentario.. etc

Esas capas se mantendran invisibles. Cuando el usuario escoge una modalidad primero se invisibilizan todas, y luego solo se muestra aquella referente a la modalidad.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #6 (permalink)  
Antiguo 23/07/2005, 19:46
 
Fecha de Ingreso: marzo-2005
Mensajes: 76
Antigüedad: 19 años, 1 mes
Puntos: 0
Ok, pero me podrias detallar más como se hace eso? porque no se hacerlo.
  #7 (permalink)  
Antiguo 24/07/2005, 18:26
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 5 meses
Puntos: 45
¿cual es tu duda? Sabes por donde cogerlo?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #8 (permalink)  
Antiguo 24/07/2005, 20:27
 
Fecha de Ingreso: marzo-2005
Mensajes: 76
Antigüedad: 19 años, 1 mes
Puntos: 0
la verdad, el problema es que no se me ocurre como hacer que al oprimir un elemento del menú de salto se muestre una capa que está oculta, como puedo hacer eso?
__________________
SEPALAUR
WebProgreso
  #9 (permalink)  
Antiguo 25/07/2005, 08:48
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 5 meses
Puntos: 45
Supongo que el "menu de salto" sera un elemento <select>.

Puedes asociarle un evento onchange, que saltara cuando cambies la opcion. Ese evento onchange llamaria a una funcion javascript, que tiene como parametro el valor de la opcion seleccionada. Dicho valor es el id de un <div> con el formulario de la modalidad en cuestion.

Código PHP:
<select onchange="muestraDiv(this.options[this.options.selectedIndex].value)"
Acuerdate que la funcion muestraDiv debe primero ocultar todas las modalidades y luego mostrar la que tiene que mostrar. Si no podriamos ver dos modalidades al mismo tiempo.

Si tienes dudas, pregunta.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #10 (permalink)  
Antiguo 25/07/2005, 09:30
 
Fecha de Ingreso: marzo-2005
Mensajes: 76
Antigüedad: 19 años, 1 mes
Puntos: 0
no me funciona

Hola,
Lo intenté así, pero no me funciona, aqui dejo un link a un archivo de prueba que hice para que le vean el codigo y vean que puede estar saliendo mal.
Gracias.
__________________
SEPALAUR
WebProgreso
  #11 (permalink)  
Antiguo 25/07/2005, 09:44
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 5 meses
Puntos: 45
mmm, ya me suponia yo que tendria que fabricarte el ejemplo...

No veo la funcion muestraDiv definida, y "muestraDiv(this.options[this.options.selectedIndex].Layer2)" no tiene sentido, pues Layer2 no es una propiedad de this.options[this.options.selectedIndex]. Tampoco tendria sentido "this.options[this.options.selectedIndex].value" porque las option no tienen atributo value... enfin...Ademas el codigo no es que sea de lo mas simplificado... intentare hacer una cosa sencilla:

Código PHP:
<script>
//aqui los ids de tus capas de modalidades. Pon el [0] como predeterminado
var losIds=["capa1","capa2","capa3"];
function 
muestraDiv(id) {
    
//ocultamos todas las modalidades
    
for(a=0;a<losIds.length;a++) 
        
document.getElementByIdlosIds[a] ).style.display="none";
    
//mostramos la modalidad en cuestion
    
document.getElementByIdid ).style.display="block";
}
</script>

Contenido de la pagina......

<select onchange="muestraDiv(this.options[this.options.selectedIndex].value)">
    <option value="capa1" selected>Comprar</option>        <!-- predeterminado -->
    <option value="capa2">Vender</option>
    <option value="capa3">Catalogo</option>
</select>

<div id="capa1">
    Modalidad 1
</div>
<div id="capa2">
    Modalidad 2
</div>
<div id="capa3">
    Modalidad 3
</div>

Contenido de la pagina......


<script>
muestraDiv(losIds[0]);        //mostramos el predeterminado.
</script> 
Esta seria una manera de implementarlo, por ejemplo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #12 (permalink)  
Antiguo 25/07/2005, 09:51
 
Fecha de Ingreso: marzo-2005
Mensajes: 76
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola
Muchas gracias era justo lo que necesitaba, pero ahora solo tengo una duda más, si estoy creando un formulario como puedo hacer que elementos de formularios en edistintas capas formen parte de un mismo formulario, para que se envíe todo al oprimir enviar?
Gracias
__________________
SEPALAUR
WebProgreso
  #13 (permalink)  
Antiguo 25/07/2005, 10:00
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 5 meses
Puntos: 45
Yo lo haria asi (creo que es lo que quieres):

(ejemplo completo):
Código PHP:
<script
//aqui los ids de tus capas de modalidades. Pon el [0] como predeterminado 
var losIds=["capa1","capa2","capa3"]; 
function 
muestraDiv(id) { 
    
//ocultamos todas las modalidades 
    
for(a=0;a<losIds.length;a++) 
        
document.getElementByIdlosIds[a] ).style.display="none"
    
//mostramos la modalidad en cuestion 
    
document.getElementByIdid ).style.display="block"

</script> 

Contenido de la pagina...... 

<select onchange="muestraDiv(this.options[this.options.selectedIndex].value)"> 
    <option value="capa1" selected>Comprar</option>        <!-- predeterminado --> 
    <option value="capa2">Vender</option> 
    <option value="capa3">Catalogo</option> 
</select> 

<form>
    <div id="capa1"> 
        <input type="hidden" name="modalidad" value="comprar">
        Nombre del producto a comprar: <input type="text" name="producto">
    </div> 
    <div id="capa2"> 
        <input type="hidden" name="modalidad" value="vender">
        Nombre del producto a vender: <input type="text" name="producto">
    </div> 
    <div id="capa3">
        <input type="hidden" name="modalidad" value="observar"> 
        Nombre del producto a observar: <input type="text" name="producto">
    </div> 
</form>

Contenido de la pagina...... 


<script> 
muestraDiv(losIds[0]);        //mostramos el predeterminado. 
</script> 
En cada modalidad pones el campo con el mismo nombre, y asi recoges de forma sencilla su valor una vez enviado (aunque no estoy muy seguro de que funcione, por aquello de poner varios campos iguales en un formulario, quizas solo se envie el primero. Pruebalo y nos lo confirmas). Para comprobar la accion que debes realizar recoges el campo oculto con nombre "modalidad".

Con suerte funciona, si no ya buscaremos otra manera..
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #14 (permalink)  
Antiguo 25/07/2005, 10:12
 
Fecha de Ingreso: marzo-2005
Mensajes: 76
Antigüedad: 19 años, 1 mes
Puntos: 0
Muchas gracias, lo probaré en internet y después les cuento si funciona.
__________________
SEPALAUR
WebProgreso
  #15 (permalink)  
Antiguo 25/07/2005, 17:02
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
derkenuke, una duda: ¿la función getElementById por qué se usa? Quiero decir que no es necesaria de manera general (podrías poner id_del_elemento.style.display="none" directamente y también funcionaría). Supongo varias cosas, pero me gustaría saber los motivos exactos por los que la usas y cuándo debe usarse y cuándo no.
  #16 (permalink)  
Antiguo 25/07/2005, 20:27
 
Fecha de Ingreso: marzo-2005
Mensajes: 76
Antigüedad: 19 años, 1 mes
Puntos: 0
formulario funcionando

Saludos:
Escribo para contarles a todos que el formulario con campos que varian funciona a la perfección, pueden verlo aquí, si quieren envienme sus comentarios a ver que les parece o si necesita algún arreglo ¡¡muchas gracias derkenuke por toda la ayuda!!
__________________
SEPALAUR
WebProgreso
  #17 (permalink)  
Antiguo 26/07/2005, 06:28
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 5 meses
Puntos: 45
Cita:
Iniciado por un_tio
derkenuke, una duda: ¿la función getElementById por qué se usa? Quiero decir que no es necesaria de manera general (podrías poner id_del_elemento.style.display="none" directamente y también funcionaría). Supongo varias cosas, pero me gustaría saber los motivos exactos por los que la usas y cuándo debe usarse y cuándo no.
La funcion getElementById es la unica que cumple los estandares de la w3c para la referencia a objetos. Por lo menos eso es lo que tengo entendido. Si referencias los objetos de otras maneras no te aseguras que funcionen bien en todos los navegadores. Podrias hacer de la misma manera:
Código PHP:
document.all["id"
Y funcionaria, pero solo en IE.

Por ello es bueno que todos sigamos los estandares w3c, para que todo sea mas homogeneo, mas portable (y a mi por lo menos, me parece mas legible).


Cita:
Iniciado por SEPALAUR
Escribo para contarles a todos que el formulario con campos que varian funciona a la perfección, pueden verlo aquí, si quieren envienme sus comentarios a ver que les parece o si necesita algún arreglo ¡¡muchas gracias derkenuke por toda la ayuda!
Me alegro de que te funcione.

__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #18 (permalink)  
Antiguo 26/07/2005, 07:14
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Ok, gracias. Otra duda: acabo de ver que usas "block" para hacer que se muestren los objetos. ¿Por qué block y no "inline"? ¿Qué diferencias hay? (lo he probado y he visto diferencias, que no sé bien a qué se deben, en el firefox, pero no en el explorer).
  #19 (permalink)  
Antiguo 26/07/2005, 07:19
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 5 meses
Puntos: 45
Cito:

Cita:
Iniciado por http://www.torresburriel.com/w-css/?p=13
Podemos ver la naturaleza de algunos elementos (X)HTML:
Elementos de bloque (block)
"Los elementos de bloque generan una nueva línea (renglón) en el flujo del texto". (Fuente)
Elementos inline
"Los elementos inline no generan una nueva línea en el flujo del texto. Los elementos inline son vistos como elementos “internos” subordinados para los hacia arriba elementos de bloque". (Fuente)

Así las cosas, son elementos de bloque: address, blockquote, center, dl, dir, div, fieldset, form, h1-6, hr, isindex, menu, noframes, noscript, ol, p, pre, table, ul.

Y son elementos inline: a, abbr, acronym, applet, b, basefont, bdo, big , br, button, cite, code, dfn, em, font, i, img, input, iframe, kbd, label, map, object, q, samp, script, select, small, span, strong, sub, sup, textarea, tt, var.
Aunque yo siempre utilizo block para casi todo.. al inline no estoy acostumbrado. Pero ya ves, tienen diferentes finalidades.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 15:19.