Receber Dados De Um Select Multiple Com Php
Receber dados de um select multiple com php
Escrito por Klawdyo em
PHP. Data: 16/02/2008
Licença: Alguns direitos reservados. Dar créditos ao autor e linkar este original
Ver tópico original no fórum.
Pra quem já tentou usar um Select com o atributo "multiple" habilitado já deve ter passado por esse problema. Acontece que quando selecionamos várias opções em um select ele só envia o último selecionado.
No exemplo acima, apenas a opção "4" seria recebida pelo script, conforme o resultado a seguir.
Na realidade, todas as 3 opções selecionadas serão enviadas, mas só a última chegará.
Isso ocorre quando o código HTML que gera o SELECT está da forma abaixo. Quando o fomulário é enviado, são criadas 3 variáveis chamadas $_POST["select"], que, por terem nomes iguais, são sobrepostas umas pelas outras, restando apenas a última.
A Solução
Para resolver o problema acrescente "[]" ao nome do SELECT, como na imagem a seguir.

Dessa forma, o script PHP que irá interpretar o os dados do formulário, receberá os valores do SELECT na forma de Arrays, como a imagem a seguir
Então é isso pessoal. Muito simples essa resolução. Espero que venha a ajudar a todos que venham a ter essa dúvida.
Comentários:
Micox disse:
Essa foi 10.
JuLIOOXX disse:
AlessandroSGO disse:
tava precisando dessa!
parabens
AlessandroSGO disse:
como faço pra saber o que o usuario selecinou...
a list box é essa...
se alguem puder me responder ficarei muito grato, é meio urgente o negocio aki...hehehe
abraços!
<option selected="selected">selecione</option>
<?php
do {
?>
<option value="<?php echo $row_pizza['sabor_pizza']?>"><?php echo $row_pizza['sabor_pizza']?></option>
<?php
} while ($row_pizza = mysql_fetch_assoc($pizza));
$rows = mysql_num_rows($pizza);
if($rows > 0) {
mysql_data_seek($pizza, 0);
$row_pizza = mysql_fetch_assoc($pizza);
}
?>
</select>
Ver o restante dos comentários no fórum (e aproveitar pra comentar também !).