DropDown box com multipla escolha e tratamento do $_POST

eXcept

Power Member
Viva

Tenho uma dropdown box criada, com multipla escolha, assim:

Código:
<form method="POST" action="teste.php">
	<p><select size="8" name="D1" multiple>
	<option>a</option>
	<option>d</option>
	<option>e</option>
	<option>f</option>
	<option>g</option>
	<option>h</option>
	<option>i</option>
	<option>j</option>
	<option>k</option>
	<option>m</option>
	<option>n</option>
	<option>b</option>
	<option>c</option>
	</select></p>
	<p><input type="submit" value="Submit" name="B1"></p>
</form>

no teste.php tenho

Código:
<?
print_r($_POST['D1']);
?>

no entanto, o $_POST['D1'] só tem o último valor seleccionado da dropdown box.

Como é que posso "apanhar" todas as variáveis seleccionadas?

TIA
 
Um outro teste

Código:
<?
$valor = $_POST['D1'];
foreach ($valor as $a) {
    echo $a;
}
?>

Warning: Invalid argument supplied for foreach() in C:\Program Files\xampp\htdocs\tes2\teste.php on line 3

:-(
 
tavas quase lá...
Código:
<form method="POST" action="teste.php">
	<p><select size="8" name="D1[]" multiple>
	<option>a</option>
	<option>d</option>
	<option>e</option>
	<option>f</option>
	<option>g</option>
	<option>h</option>
	<option>i</option>
	<option>j</option>
	<option>k</option>
	<option>m</option>
	<option>n</option>
	<option>b</option>
	<option>c</option>
	</select></p>
	<p><input type="submit" value="Submit" name="B1"></p>
</form>

PHP:
<?
print_r($_POST['D1']);


foreach($_POST['D1'] as $key => $value)
{
	echo $value.'<br />';
}
	
?>
 
Código:
j
Warning: Invalid argument supplied for foreach() in C:\Program Files\xampp\htdocs\tes2\teste.php on line 5

:-(
 
hummm...?
so te da esse erro quando nao escolhes nenhum valor, correcto?
È que aki ta a funcionar direito, só da esse erro caso nao se escolha nehum valor


PHP:
if($_POST['D1'])
{ 
  //foreach loop
}
else
{
  //mensagem de erro
}
 
esse erro dá-me qualquer que seja o valor introduzido. uma selecção ou várias

o print_r() dá-me sempre a ultima variavel seleccionada

com esse código dá-me na mesma o erro.

Estão-me a dizer que tenho de declarar a D1 como um array, mas não percebo nem como nem porquê...
 
axo que ja sei qual é o problema...lol.
Olha bem pra o codigo do form que te enviei, vais ver que a variavél está definida como um array.

Código:
<p><select size="8" name="D1[]" multiple>

esta definida como uma array para que possa realmente guardar varios valores, caso contrario D1 apenas te mostra a ultima selecçao.
 
já agora só acrescentava algo ao código de verificação de selecção:

Código:
if( isset( $_POST['D1']) )
{ 
  //foreach loop
}
else
{
  //mensagem de erro
}

o isset() vai ver se o dito campo está lá ou não. Assim não dá erro nenhum :)
 
Back
Topo