Foros del Web » Programando para Internet » Javascript »

capturar datos de un formulario html

Estas en el tema de capturar datos de un formulario html en el foro de Javascript en Foros del Web. hola!, no se casi nada de javascript y lo poco que se lo he aprendido estos dias de manera intuitiva al verme obligado a hacer ...
  #1 (permalink)  
Antiguo 13/09/2009, 21:42
 
Fecha de Ingreso: septiembre-2009
Mensajes: 9
Antigüedad: 14 años, 8 meses
Puntos: 0
capturar datos de un formulario html

hola!, no se casi nada de javascript y lo poco que se lo he aprendido estos dias de manera intuitiva al verme obligado a hacer una web, asi que supongo que la consulta sera un poco estupida.

en este codigo al enviar el formulario devuelve el nombre de la lista de seleccion. ¿que tendria que modificar para que en vez de eso devuelva el nombre de la opcion seleccionada?
Gracias de antemano.
Código:
<html>
<head>
<script type="text/javascript">
function getName()
{
alert(document.getElementById("mySelect").name);
}
</script>
</head>
<body>

<form>
<select name="fruta" id="mySelect">
  <option name="manzana">Apple</option>
  <option name="pera">Pear</option>
  <option name="platano">Banana</option>
  <option name="naranja">Orange</option>
</select>
<input type="button" onclick="getName()" value="Alert the name of the dropdown list">
</form>

</body>
</html>
PD: codigo editado de w3schools
  #2 (permalink)  
Antiguo 13/09/2009, 23:33
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: capturar datos de un formulario html

en un formulario que utiliza <select>, al enviarse el navegador no utiliza el nombre de un <option>. por el contrario, utiliza el nombre del <select> y el valor (no el nombre) del <option> seleccionado para crear el par name=value. por lo que realmente el nombre del <option> nunca es utilizado. me imagino que de lo contrario el navegador tendria que crear tantos pares name=value segun la cantidad de <option> presente en el formulario.

ahora, si simplemente te interesa ver el nombre del <option> seleccionado, tienes que primero determinar cual opcion esta seleccionada mediante la propiedad selectedIndex el cual devuelve un indice que lo puedes utilizar dentro del objeto options:
Código:
alert(document.getElementById("mySelect").options[document.getElementById("mySelect").selectedIndex].name);
aqui una referencia completa de las propiedades y metodos de los <select>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 14/09/2009, 07:58
 
Fecha de Ingreso: septiembre-2009
Mensajes: 9
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: capturar datos de un formulario html

no funciona lo que has puesto.
aun asi ¿no se puede capturar ningun otro valor como un "id", algo oculto que no sea lo que se muestre por pantalla?


realmente lo que tegno en mi web es una lista de nombres (extraidos de una base de datos) y quiero enviar el id(PRIMARY KEY de la lista de nombres)
  #4 (permalink)  
Antiguo 14/09/2009, 12:40
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: capturar datos de un formulario html

lamento no poderte ayudar, no comprendo muy bien el asunto ya que no estoy familiarizado con las base de datos de modo que no se donde deberia ir cada dato.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 14/09/2009, 13:15
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: capturar datos de un formulario html

Hola

Cita:
Iniciado por zerokilled Ver Mensaje
lamento no poderte ayudar, no comprendo muy bien el asunto ya que no estoy familiarizado con las base de datos de modo que no se donde deberia ir cada dato.
Tranquilo, no se entiende muy bien que es lo que quiere. Ahora respondiendo, por intuición mas que nada, a kazuki, necesitarás sacar las id e insertarlas en los option para poder ser enviadas o levantadas en un alert

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #6 (permalink)  
Antiguo 14/09/2009, 14:31
 
Fecha de Ingreso: septiembre-2009
Mensajes: 9
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: capturar datos de un formulario html

haber...
olvidando lo anterior(quise poner un ejemplo facil y fue peor).
tengo un formulario y en su interior un select.
en los option hay nombres de personas (con sus apellidos).
cada option tiene un id/nombre (este corresponde con el ID de la persona en la base de datos).

<option id="7584">Antonio Martinez<option>

ahora yo quiero direccionar a otra pag y enviar el id de la persona que fue seleccionada ...href="otrapagina.php?ID=7584"...
  #7 (permalink)  
Antiguo 14/09/2009, 14:43
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: capturar datos de un formulario html

Hola

Entonces esto es lo que necesitas

Código javascript:
Ver original
  1. <script type="text/javascript">
  2. function getName(opt) {
  3. if (opt != 0)
  4. window.location.href = "x.asp?menu=" +opt;
  5. }
  6. </script>
  7. </head>
  8. <body>
  9. <form>
  10. <Select name="fruta" id="mySelect" onchange="getName(this.options[this.selectedIndex].value);">

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #8 (permalink)  
Antiguo 14/09/2009, 15:23
 
Fecha de Ingreso: septiembre-2009
Mensajes: 9
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: capturar datos de un formulario html

basandome en este ultimo ejemplo que han puesto. si selecciono la opcion "1" me manda a "x.asp?menu=1" y lo que quiero es que me mande a "x.asp?menu=jajaja"

espero que con esto ultimo se entienda lo que pretendo hacer
Código:
<html>
<head>
<script type="text/javascript">
function getName(opt) {
if (opt != 0) 
window.location.href = "x.asp?menu=" +opt;
} 
</script>
</head>
<body>
<form>
<Select name="fruta" id="mySelect" onchange="getName(this.options[this.selectedIndex].value);">
<option id="jajaja">1</option>
<option id="jojojo">2</option>
<option id="jijijiji">3</option>
</Select>
</form>
</body>
</html>
  #9 (permalink)  
Antiguo 14/09/2009, 15:29
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: capturar datos de un formulario html

eso porque el atributo que no es. en lugar de id tienes que utilizar value
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #10 (permalink)  
Antiguo 14/09/2009, 15:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: capturar datos de un formulario html

Hola:

kazuki: No entiendo porqué te complicas tanto... te recomiendo que en los formularios dependas lo menos posible de javascript, ya que de otra manera se pueden considerar inaccesibles... Una buena práctica es darle preferencia a los scripts en el servidor, y complementarlos con los del navegador, pero el tratamiento de los selects es bastante sencillo... porqué no te conformas con los values en los options... un id en un option es de las cosas más absurdas que haya visto (no te vayas a enojar...)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #11 (permalink)  
Antiguo 14/09/2009, 15:45
 
Fecha de Ingreso: septiembre-2009
Mensajes: 9
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: capturar datos de un formulario html

eh llorado cuando he visto que ya funciona (poniendo el "value") llevo desde ayer intentandolo
GRACIAS. y perdon por las incomprensiones anteriores
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 19:35.