Foros del Web » Programando para Internet » Javascript »

Select Multiple, como pasar las opciones a otro script...

Estas en el tema de Select Multiple, como pasar las opciones a otro script... en el foro de Javascript en Foros del Web. Hola, por el titulo pensaran que primero debi usar el buscador y mirar las faq's del foro, cosa que hice previamente y si encontre parte ...
  #1 (permalink)  
Antiguo 29/06/2005, 15:43
Avatar de KarenFerreira  
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 87
Antigüedad: 19 años
Puntos: 2
Pregunta Select Multiple, como pasar las opciones a otro script...

Hola, por el titulo pensaran que primero debi usar el buscador y mirar las faq's del foro, cosa que hice previamente y si encontre parte de la solucion que necesitaba, no la encontre toda y esto se esta volviendo tedioso y complicado...

Bien, tengo dos listas, una de ellas cuenta con opciones obtenidas de una consulta en una base de datos, la otra está vacia. Ahora, lo que yo hago es pasar de la lista 1 elementos a la lista 2, y luego debo pasarlos a otra página.
El problema, si bien era inicialmente que los elementos de la lista 2 pudieran pasar a la siguiente página asi no se encontraran seleccionados, pude resolverlo en parte con tres lineas de código que estaban posteadas en este foro...

Código HTML:
sele = document.envio.list2;
for(i=0; opt=sele.options[i]; i++)
    opt.selected = true; 
el hecho es que a mi página siguiente solo llega el primer elemento seleccionado, bueno se que deben estar pensando que me faltan los corchetes en el nombre del select para indicar que este es multiple, pues la verdad es que ya los puse, y al ponerlos una funcion que tengo en javascript que me permite pasar los elementos de la lista1 a la lista2 no me funciona, es esta...

Código HTML:
<script language='JavaScript'>
function move(form) {
for(var i=0; i<form.list1.options.length; i++) {
if(form.list1.options[i].selected && form.list1.options[i].value != "") {
var no = new Option();
no.value = form.list1.options[i].value;
no.text = form.list1.options[i].text;
form.list2.options[form.list2.options.length] = no;
   }
}
</script>

aclaro que no fui yo quien escribio la funcion...

y en el formulario los selects que tengo estan asi:

Código HTML:
<select name="list1"multiple size="<?php echo numtiros; ?>" class="tme">
 <?php
  while($row_tiro = mysql_fetch_array($rs_tiro))
	{
	 $id_tiro = $row_tiro["id_tiro"];
	 $nom_tiro = $row_tiro["nom_tiro"];
?>
<option value="<?php echo $id_tiro; ?>"><?php echo $nom_tiro; ?></option>
<?php } ?>
</select>

<input name="B1" type="button" class="box1" onClick="move(this.form)" value="   &raquo;   "><br>

<select name="list2"multiple size="<?php echo numtiros; ?>" class="tme"></select></td> 
En conclusion la pregunta seria la siguiente ¿Como hago para pasar las opciones de la lista dos a la pagina siguiente sin que se vea afectada la funcion move?

Gracias por su tiempo y colaboración
  #2 (permalink)  
Antiguo 29/06/2005, 16:55
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
me parece que el problema esta en el for

donde dice

for(i=0; opt=sele.options[i]; i++)

proba poner

for(i=0; i<sele.options.length; i++)


creo que eso soluciona el problema de que solo te seleccione la 1era opcion (si lo que quieres es seleccionar todas las opciones)

Espero que sea la solucion , o por lo menos una parte
__________________
by Capitán Buscapina
.
  #3 (permalink)  
Antiguo 17/09/2009, 06:28
Avatar de anibalag85  
Fecha de Ingreso: marzo-2009
Mensajes: 52
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Select Multiple, como pasar las opciones a otro script...

Oye, ya se que este post es de hace mucho tiempo, pero os importaría poner el codigo correcto?, es que yo estoy intentando hacerlo y no me sale tampoco.
gracias
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 13:51.