Foros del Web » Programando para Internet » Javascript »

Paso de valores de un select

Estas en el tema de Paso de valores de un select en el foro de Javascript en Foros del Web. Hola a todos, inicialmente empezamos este tema en el foro de PHP pero hemos visto que se ha convertido más en algo de JS A: ...
  #1 (permalink)  
Antiguo 07/08/2008, 04:30
 
Fecha de Ingreso: diciembre-2006
Mensajes: 82
Antigüedad: 17 años, 4 meses
Puntos: 0
Paso de valores de un select

Hola a todos, inicialmente empezamos este tema en el foro de PHP pero hemos visto que se ha convertido más en algo de JS

A:
Hola,
Estoy trabajando con unas listas (select) con elementos intercambiables, tras conseguir esto con html y JS ahora estoy en la parte de recoger los datos con PHP pero no lo consigo.
Yo tengo un select llamado selectDestino, el cual obtengo mediante el $_POST:
$selectDestino=$_POST["selectDestino"].
Pero una vez estoy ahí no se como recorrer todas las opciones (no han de estar seleccionadas ni nada de eso...). Lo que necesito es saber todos los values de todas las opciones existentes en el selectDestino.

No obstante me da la impresión de que si no están seleccionadas no puedo acceder a las opciones, ya que cuando pulso enviar para pasar a la siguiente pagina solo lo hago si tengo alguno seleccionado (y esta el post no vacio)
--------------------------------------------------------------------------------

B:
Del select solo recibiras los elementos seleccionados (varios si es un select multiple).
si quieres recibir todos los datos del select, añade un campo oculto y en el value añades las opciones del select (que posiblemente los tengas en un array) y haces un serialize() luego con el $_POST["nombrecampooculto"] haces unserialize() creo que con eso puede servirte
--------------------------------------------------------------------------------
A:
Inicialmente yo cojo los datos de una BD y los pongo en un select Origen, el usuario va moviendolos a un select Destino y lo que necesito es obtener todas las opciones que finalmente ha dejado el usuario en el select Destino.
¿Como hago para obtener estos datos una vez el usr ha pulsado enviar?
Se me ocurre esto pero supongo que habrá algo más sencillo:
1-LLamar a una función JS cuando el usuario pulse enviar
2-Esta funcion tendra que recorrer las opciones del select (todas, no solo la/s seleccionadas) y las metera en un array
3-Paso el array JS a un array PHP y lo serializo
--------------------------------------------------------------------------------

B:
esto es mas de javascript que de php, pero bueno.
supongo que cuando dices que los pasas de un select a otro, lo haces con algun codigo javascript, si es asi, lo mas facil seria que cada vez que pases un dato de un select al otro, añadas al value de un campo oculto el select pasado. Los separas por comas por ejemplo, o algun caracter que sepas que te sirva de separador, y luego en tu script php haces un explode() de ese campo oculto.

el serialize() no lo sabria implementar desde javascript para luego poder hacer un unserialize() desde php y que cuadren los datos.
--------------------------------------------------------------------------------

A:
Haber si he entendido bien, el sistema permite pasar los elementos de un select a otro y viceversa, es decir, que puedo meter un elemento en un select (y anotar este en el string que me has comentado que construya), y luego volver a meter ese elemento en el otro select (y tener que desanotar ese elemento de dicho string).
¿Sabes como puedo hacer el proceso de anotar y desanotar en el string? (lo de anotar es escribir en una cadena, pero lo de desanotar se me hace más complejo)
--------------------------------------------------------------------------------

B:
Para eso, mejor remitete al foro de javascript, que de eso estoy un poco pez.
se me ocurre algo como ir poniendolos en un array haciendo push/pop y una vez hecho el submit, convertir ese array a una cadena separados por comas (o similar) y meterlo en un campo oculto, para despues manipularlo desde php

pero ya digo, que mejor preguntes aqui
  #2 (permalink)  
Antiguo 07/08/2008, 04:43
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Paso de valores de un select

Como te han dicho tienes que pasar las opciones a un campo oculto antes de enviar el formulario.

Podrías, por ejemplo, tener un onsubmit="procesarOpcionesAntesDeEnviar()" y:
Código:
function procesarOpcionesAntesDeEnviar() {
    var opciones = document.getElementById("selectDestino").options;
    var salida = "";
    for (i in opciones) {
        salida += opciones[i].value + "/";
    }
    document.getElementById("unCampoOculto").value = salida.substring(0,salida.length-1);
    return true; // para que se haga el submit normalmente
}
Con eso, te llegarán las opciones en una cadena separadas por / ("una/otra/otra mas") Luego en PHP lo separas y ya está.

También puedes hacer como te sugieren al final, ir anotándolo y desanotándolo en una cadena o en un array, pero en realidad no lo vas a necesitar hasta que se vaya a enviar el formulario, así que no es necesario hacerlo cada vez que se cambia el select.
  #3 (permalink)  
Antiguo 04/11/2008, 02:09
 
Fecha de Ingreso: noviembre-2008
Mensajes: 1
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Paso de valores de un select

Hola!! mira me intereso mucho este foro por q llevos dias intentado resolver un problemilla similar en un aplicacion en la cual estoy trabajando y es que necesito de alguna forma guardar en una variable todos los elementos de un select sin q estos esten seleccionados se que en realidad lo que se guardaria en la variable seria un array, lo he intentado utilizando los corchetes [] para que se guarden los datos como vector pero no he tenido exito.. en fin lo que necesito es guardar en una variable todas las opciones de un select sin estas estar seleccionadas y luego hacer un ciclo para recorrer cada una de ellas sera que me pueden ayudar?? 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 23:08.