Viva
Tenho uma dropdown box criada, com multipla escolha, assim:
<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
<?
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
<?
$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
:-(
mcog_blaster
20-04-2006, 00:34
tavas quase lá...
<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>
<?
print_r($_POST['D1']);
foreach($_POST['D1'] as $key => $value)
{
echo $value.'<br />';
}
?>
Vou experimentar amanha.
cumpz
j
Warning: Invalid argument supplied for foreach() in C:\Program Files\xampp\htdocs\tes2\teste.php on line 5
:-(
mcog_blaster
20-04-2006, 13:40
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
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ê...
ele só me mostra *sempre* o ultimo valor seleccionado, quer por echo da variavel, quer pelo print_r() do post!
mcog_blaster
20-04-2006, 14:19
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.
<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.
damn, pormenor de caca mas mt importante!
tks, ja bomba ;)
CrazyBomber
20-04-2006, 15:14
já agora só acrescentava algo ao código de verificação de selecção:
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 :)