Foros del Web » Programando para Internet » PHP »

recoger variables de un select multiple

Estas en el tema de recoger variables de un select multiple en el foro de PHP en Foros del Web. Hola! Espero no estar preguntando nada, que ya se haya contestado en el foro, pero yo no he sido capaz de encontrar respuesta... :( La ...
  #1 (permalink)  
Antiguo 23/07/2003, 11:08
 
Fecha de Ingreso: julio-2003
Mensajes: 2
Antigüedad: 20 años, 9 meses
Puntos: 0
recoger variables de un select multiple

Hola!

Espero no estar preguntando nada, que ya se haya contestado en el foro, pero yo no he sido capaz de encontrar respuesta... :(

La pregunta es sencilla:

Tengo un formulario html con un campo <select> con la opción de selección múltiple activada.
La forma de paso de las variables es mediante POST.
Sé que con PHP de la 4.x la forma de recoger las variables de los formularios html es mediante la variable global

$_POST["nombre_variable"]

La cuestión es que cuando selecciono más de una opción en el campo select en cuestión, usando el método típico, sólo puedo acceder a la última opción seleccionada.

¿Cómo obtengo todas las opciones que se han seleccionado en el campo?

Espero haber sido suficientemente claro en mi pregunta :)

Muchas gracias.
Javi.
  #2 (permalink)  
Antiguo 23/07/2003, 12:11
Avatar de Woody  
Fecha de Ingreso: abril-2003
Ubicación: Madrid y Barcelona
Mensajes: 68
Antigüedad: 21 años
Puntos: 0
Esto fijo que se puede hacer con Javascript

No soy un crack de PHP y puede que se pueda hacer por PHP (yo no sé), yo te recomiendo que mires las FAQs de Javascripts (donde tampoco soy un crack...) yo necesite algo parecido y lo hice haciendo una lista de las cosas con un "radio boton" al lado de cada una...

Aunque no tengas mucha idea de Javascript tranquilo porque en las faqs te puedes limitar copy paste y si aprendes un poquitin mejor que mejor.

Un saludo y espero haberte sido util.

Woody
  #3 (permalink)  
Antiguo 23/07/2003, 13:20
 
Fecha de Ingreso: abril-2003
Ubicación: Monterrey, Nuevo Leon Mex
Mensajes: 300
Antigüedad: 21 años
Puntos: 3
Mira ahi te va un ejemplo de tu problema a ver si te puedo ayudar

$respla=mysql_query("select * from guarniciones order by cve_gua",$Conexion);
while ($row = mysql_fetch_array($respla))
{
$dscgua = $row["dsc_gua"];
$cvegua = $row["cve_gua"];
$sw = $sw + 1;
echo "<td>";
if($sw > 4)
{
$sw=1;
}
echo "<tr>"
."<td align=\"left\" bgColor=\"#cccccc\"><input type=\"checkbox\" value=\"$cvegua\" name=\"guarniciones[]\"></td>"
."<td noWrap bgColor=\"#cccccc\">&nbsp;$dscgua&nbsp;</td>"
."</tr>";
}
echo "<tr>"
." <td colSpan=\"1\">"
." <td align=\"center\"><input type=\"submit\" value=\"Seleccionar\" name=\"submit_mult\"></td>"
."</tr>"


El resultado te lo va a dejar en el vector o array no se como le llames tu pero te lo deja en guarniciones[]

a ver si te solucione tu problema
  #4 (permalink)  
Antiguo 28/07/2003, 01:22
 
Fecha de Ingreso: julio-2003
Mensajes: 2
Antigüedad: 20 años, 9 meses
Puntos: 0
NO es eso exactamente

Hola!

[Woody]
La verdad es que de momento no quería usar javascript, no por nada, sino porque pienso que debería haber una forma más rápida y sencilla.

[pahs5809]
Mi pregunta es más sencilla de lo que responde tu respuesta, y aunque me diste una idea con ella, no he conseguido resolver el problema.

Lo que quiero hacer es:

Tengo un
<form ... action="uno.php"...>
<select name="fdestino" size="8" multiple>
<option ...
<option ...
</select>
...
...
</form>

Si el SELECT no fuese multiple en mi página "uno.php" me bastaría con hacer $dest = $_POST["fdestino"] para obtener el valor seleccionado, pero mi duda está en el atributo "multiple" del select, que permite al usuario seleccionar varias opciones, y no se como obtener todas las seleccionadas.

Lo he intentado así:
<select name="fdestino[]" size="8" multiple>

y en "uno.php" poner
$dest[] = $_POST["fdestino[]"]

pero eso no me ha funcionado.

A ver si alguien tiene una idea.
Gracias.
  #5 (permalink)  
Antiguo 28/07/2003, 02:04
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Esto esta mal:
Código PHP:
$dest[] = $_POST["fdestino[]"
Lo correcto es:
Código PHP:
$dest $_POST["fdestino"];
// en $dest tienes el array
// puedes acceder a un solo elemento asi
echo $dest[0];
// o mostrar todos los elementos con 
foreach ($dest as $elem) {
  echo 
$elem;
}
// en definitiva, $dest es un array con todos los elementos seleccionados 
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:20.