sexta-feira, 29 de fevereiro de 2008

Pegar dados de um Select Multiple com PHP

Hoje precisei vincular um item a várias categorias. Como estrutura, tinha uma tabela com perguntas e respostas e outra tabela com as categorias que essas perguntas podiam ser vinculadas. Criei uma outra tabela que tinha como chave estrangeira as chaves primárias dessas duas tabelas.

Na interface com o usuário, fiz um cadastro de perguntas e respostas, e na mesma tela o usuário poderia vincular as categorias que a pergunta se encaixava. Como as categorias podiam ser muitas, não quis usar checkbox. Como solução optei pelo select multiple, que definido o tamanho ele habilita a barra de rolagem, caso necessite.

Para pegar os dados desse formulário, fiz o seguinte: criei um campo select com os dados que eu precisava:

<select name="nomeSelect[]" size="5" multiple> 
    <option value="1">Valor 1</option>
    <option value="2">Valor 2</option>
    <option value="3">Valor 3</option>
</select>

Para pegar os dados enviados pelo POST, fiz o seguinte:
for ($i = 0; $i < count($_POST['nomeSelect']); $i++) 
{
  echo $_POST['nomeSelect'][$i];
}

No código, eu usava o laço de repetição para vincular a pergunta a cada categoria selecionada no select multiple, através de INSERT na base de dados!

1 comentários:

Anônimo disse...

Boa tarde. Perdoe-me, mas estou ingressando neste "mundo" do PHP recentemente. Não entendi onde coloco esta opção para pegar os dados selecionados no campo Select do form do HTML. Este é um valor de uma variavel? Se não como faço?]Obrigado.