Foros del Web » Programación para mayores de 30 ;) » Java »

Recoger elementos de una lista que se hace en un formulario

Estas en el tema de Recoger elementos de una lista que se hace en un formulario en el foro de Java en Foros del Web. Hola! Tengo un formulario donde hay opción a añadir o quitar telefonos de una lista cuando doy de alta una persona. Para darla de alta ...
  #1 (permalink)  
Antiguo 02/09/2008, 01:39
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 17 años, 3 meses
Puntos: 1
Recoger elementos de una lista que se hace en un formulario

Hola!
Tengo un formulario donde hay opción a añadir o quitar telefonos de una lista cuando doy de alta una persona. Para darla de alta recojo todos los datos del formulario menos los teléfonos porque no sé como hacerlo. Pongo el trozo de código correspondiente al formulario donde se meten los telefonos:


parte de javascript de la jsp:

//función para añadir telefonos a la lista
function addT() {
var newitem=prompt("Añadir teléfono:");
document.form.telefonos[document.form.telefonos.length] = new Option(newitem, document.form.telefonos.length);
}

//función para borrar telefonos de la lista
function delT() {
if (document.form.telefonos.selectedIndex >= 0) {
document.form.telefonos.options[document.form.telefonos.selectedIndex]=null;
document.form.telefonos.selectedIndex=0;
}

parte de html de la jsp:

<form name="form">
<label for="telefonos">Teléfonos:</label>
<select name="telefonos" size="7" >
<option>Teléfonos...</option>
</select>
<input type="button" value="Añadir" onClick="addT()">
<input type="button" value="Borrar" onClick="delT()">
</form>

En la jsp se ve que añade y borra los teléfonos correctamente, pero ¿como recupero los valores de la lista para guardarlos en la BD?

Saludos!!
  #2 (permalink)  
Antiguo 03/09/2008, 05:03
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Recoger elementos de una lista que se hace en un formulario

alguna idea?
  #3 (permalink)  
Antiguo 03/09/2008, 05:58
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Recoger elementos de una lista que se hace en un formulario

Un select solo envia la opcion seleccionada como parametro, no envia todas las opciones del select. Para enviarlo tendras que hacerlo de otra forma, como por ejemplo en JavaScript antes de enviar el form crear tantos input de tipo hidden como opciones tengas en el select.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #4 (permalink)  
Antiguo 03/09/2008, 06:57
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Recoger elementos de una lista que se hace en un formulario

No sé como hacer eso GreenEyed, es que javascript aún no lo domino
Saludos!!
  #5 (permalink)  
Antiguo 03/09/2008, 08:10
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Recoger elementos de una lista que se hace en un formulario

Hola,

Puedes ponerle a la etiqueta "select" el atributo "multiple", con esto podras selecccionar mas de uno de la lista y enviarlos todos.

<select name="telefonos" size="7" multiple>

Ahora solo te quedarian dos cosas por hacer:
1. Cuando hayas terminado de agregar todos los telefonos seleccionar todos de la lista y seguir con tu aplicacion.

2. Puedes dejar tu lista sin seleccionar pero al momento de darle "Aceptar" a tu pagina deberas mandar a llamar una funcion de javascript que te seleccione todos los elementos de la lista para que se envien a tu servlet.

Espero te sirva.

saludos!
  #6 (permalink)  
Antiguo 04/09/2008, 01:04
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Recoger elementos de una lista que se hace en un formulario

Hola
Estoy intentando hacer eso, pero no lo consigo.

En el formulario:

<label for="telefonos">Teléfonos:</label>
<select name="telefonos" size="7" multiple="multiple">
<option>Teléfonos...</option>
</select>
<input type="button" value="Añadir" onClick="addT()">
<input type="button" value="Borrar" onClick="delT()">

<input type="submit" name="operacion" value="CANCELAR" />
<input type="submit" name="operacion" value="GUARDAR" onclick="selecciona(true)"/>

y selecciona() es la función que hice en javascript:

function selecciona(opcion){
for (var i=0; i<document.form.telefonos.length;i++){
document.form.telefonos[i].selected=opcion;
}
}

¿es así?

Siguiendo la aplicación como se recogen los valores? con getParameter() o con getParameterValues()?
Saludos!!
  #7 (permalink)  
Antiguo 04/09/2008, 02:37
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Recoger elementos de una lista que se hace en un formulario

La aplicación sabe cuantos telefonos hay con getParameterValues() y me escribe el valor de cada telefono, pero no el texto (que es lo que interesa)
Me pasa lo mismo con getParameter(), me da el valor del primer telefono, pero no el texto.
¿Solución?
Saludos!!
  #8 (permalink)  
Antiguo 04/09/2008, 05:12
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 17 años, 3 meses
Puntos: 1
De acuerdo Respuesta: Recoger elementos de una lista que se hace en un formulario

Problema solucionado. En la función de javascript donde voy pidiendo los telefonos y añadiendo las opciones con el telefono tenía puesto:

//función para añadir telefonos a la lista
function addT() {
var newitem=prompt("Añadir teléfono:");
document.form.telefonos[document.form.telefonos.length] = new Option(newitem, document.form.telefonos.length, "", "");
}

Pues bien, cambié el valor que le paso a la nueva opción:

//función para añadir telefonos a la lista
function addT() {
var newitem=prompt("Añadir teléfono:");
document.form.telefonos[document.form.telefonos.length] = new Option(newitem, newitem, "", "");
}

Después en mi aplicación recojo un array de strings con request.getParameterValues y problema solucionado.

Por cierto, las opciones las selecciono antes con la función que me comentasteis cuando envío el formulario.

Gracias!

Saludos!!
  #9 (permalink)  
Antiguo 04/09/2008, 08:56
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Recoger elementos de una lista que se hace en un formulario

Hola,

Que bueno que te funcionó, cualquier cosa aqui estamos!!!

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 18:23.