Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/12/2006, 09:48
Avatar de Erikfrancisco
Erikfrancisco
 
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Re: Select Multiple; al enviar solo llega un valor

Para obtener los valores seleccionados de un select multiple, en el form el name lo tienes que declarar como un array; para que te quede más claro checa este ejemplo:
Código PHP:
<?php
if ( isset( $_POST['submit'] ) )
{
   
$valores $_POST['seleccion']; // la variable contendrá un array con los valores seleccionados

   
echo "Valores seleccionados: ";

   foreach( 
$valores as $muestra )
      echo 
$muestra." ";
   echo 
"<p>";
}
?>
<form name="algo" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<select name="seleccion[]" size="3", multiple>
   <option value="1">Uno</option>
   <option value="2">Dos</option>
   <option value="3">Tres</option>
   <option value="4">Cuatro</option>
   <option value="5">Cinco</option>
</select><br/>
<input type="submit" name="submit" value="Enviar">
</form>
U otra forma de hacerlo es que mediante una función javascript recorras los valores seleccionados y guardarlos en un array para que a su vez este array se lo asignes a un campo oculto y cuando recivas las variables mediante POST sólo hagas referencia a este campo oculto:
Código PHP:
<?php
if ( isset( $_POST['submit'] ) )
{
   
$valores $_POST['oculto']; // la variable contendrá un array con los valores seleccionados

   
echo "Valores seleccionados: ".$valores."<p>";
}
?>
<html>
<head>
<script type="text/JavaScript">
   function cuales_seleccionados(objetoSelect) // Esta función servirá para guardar los valores y textos de los docentes que harán el examen en las variables valores_seleccionados y textos_seleccionados
   {
      var valores_seleccionados = new Array();
      var index = 0;

      for ( var i = 0; i < objetoSelect.options.length; i++ ) // recorremos todas las opciones
      {
         if ( objetoSelect.options[i].selected ) // si la opcion fue seleccionada la guardamos en el array
         {
            valores_seleccionados[index] = objetoSelect.options[i].value; // guardamos los valores de la selección
            index++;
         }
      }

      if ( valores_seleccionados.length > 0 )
      {
         document.algo.oculto.value = valores_seleccionados; // le asignamos como valor al campo oculto los valores seleccionados
      }
   }
</script>
</head>
<body>
<form name="algo" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<select name="seleccion" size="3", multiple onchange="cuales_seleccionados(document.algo.seleccion);">
   <option value="1">Uno</option>
   <option value="2">Dos</option>
   <option value="3">Tres</option>
   <option value="4">Cuatro</option>
   <option value="5">Cinco</option>
</select><br/>
<input type="hidden" name="oculto">
<input type="submit" name="submit" value="Enviar">
</form>
</body>
</html>
Espero que esto te haya servido para darte unas luces. Suerte

Última edición por Erikfrancisco; 13/12/2006 a las 10:03