select con múltiples opciones seleccionadas PHP

guner

Digamos que tengo este código:

<form method="get" action="test.php">
&nbsp;&nbsp;&nbsp;&nbsp;< select name="select" size="9" multiple>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;< option value="1">Uno</option>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;< option value="2">Dos</option>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;< option value="3">Tres</option>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;< option value="4">Cuatro</option>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;< option value="5">Cinco</option>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;< option value="6">Seis</option>
&nbsp;&nbsp;&nbsp;&nbsp;</select>
< input type="submit" value="enviar">
</form>

usando get y seleccionando varias, por ejemplo "Tres" y "Cinco", te lleva a la URL test.php?select=3&select=5&Submit=Enviar, vamos, que "redefine" $_GET['select'], así que PHP solo captura la segunda definición, 5.

Pregunta 1, ¿como haríais que funcionara?.
Autorespuesta: Podría hacerlo con un input hidden y javascript, pero no todo el mundo tiene activado javascript.

Pregunta 2, para quien conozca otros lenguages para hacer webs dinámicas: ASP, ASP.NET, JSP, y CGIs varios, en éstos lenguages funciona esto correctamente?.

saludos

EnZo

La verdad esq es chungo xD nunca me habia encontrao con ese problema.

He pensao hacerlo como decias, javascript y un input oculto. Pero es mas engorroso q php.

< form method="get" action="pr.php">
< select name="componentes" size="9" multiple>
< option>Uno</option>
< option>Dos</option>
< option>Tres</option>
< option>Cuatro</option>
< option>Cinco</option>
< option>Seis</option>
</select>
< input type="submit" value="enviar">
</form>

<?
function lista($cual) {
$divido=explode('&',$_SERVER['QUERY_STRING']);
$j=0;
for ($i=0;$i<count($divido);++$i) {
if (ereg("$cual=(.*)",$divido[$i],$salida)) {
$resul[$j]=$salida[1];
++$j;
}
}
return $resul;
}

$select=lista('componentes');
print_r($select);
?>

devuelve un array con los resultados, si el select se llama componentes pues como te he puesto lista('componentes')

guner

vale, es cierto, leyendo la URL con php, también se puede, pero es que lo quiero mandar por POST, por eso lo de javascript.

En relidad puse lo de GET solo para que se viera que la variable se definia dos veces : D.

Y lo de javascript, pueden ser 16 hidden inputs no hace falta que sea solo uno.

IS4kO

En ASP:

ENVIO:

<form name="envio" method="get" action="pruebasRecibo.asp">


<select name="select" size="9" 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>
<option value="6">Seis</option>
</select>


</form>

RECIBO:

<%=Request.QueryString("select")%>

Te lo separa hasta por comas el solito :)

EnZo

habermelo dixo antes, y me evito de hacer eso xD

tendras que tirar de javascript, xq almenos con php no se puede recoger los post como tu quieres.


"pero no todo el mundo tiene activado javascript."

el 95% si?

Usuarios habituales

  • EnZo
  • IS4kO
  • guner