Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Formulários


Skin_

Pergunta

Olá pessoal,

Meu problema é simples:

Tenho um formulário com alguma caixas de texto, um select e vários "radio buttons".

Vamos supor que um usuário preencha o formulário, e que um dos campos informados seja o seu login.

Quando o usuario submeter o formuário, faço uma verificação em uma tabela (mysql) para saber se já existe alguém cadastrado com esse login.

Em caso afirmativo, devo devolver o formulário informando que já existe um usuário cadastrado com esse login e pedir para a pessoa informar outro.

A questão é: como faço para que as informações digitadas antes de submeter o formulário reapareçam?

Eu sei que as variáveis $_POST e $_REQUEST armazenam as informações digitadas. O problema é com os objetos <SELECT> e <INPUT TYPE="RADIO">.

Como vocês fazem os códigos para prever situações desse tipo para os dois objetos acima? Tem um jeito fácil?

Valeu!

Skin_

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

O $_POST e $_REQUEST guardam as informações de todos os tipos de inputs, isso dai se faz assim, na página "a" você tem o formulário, na "b" é o action, se der algum erro (no seu caso login duplicado) na "b", você tem que salvar as informações recebidas em sessões ($_SESSION) e ai retornar a página "a" e preencher os inputs com o que estiver nas sessões, no caso do SELECT, em cada option você vai ter que fazer uma verificação do tipo:

if($_SESSION['qualquercoisa'] == 'valor do option'){echo "selected";}

Onde o $_SESSION['qualquercoisa'] vai guarda o valor selecionado no select e ai em todos os options você repete isso dai, quando retornar verdadeiro, ou seja, $_SESSION['qualquercoisa'] for igual a 'valor do option' ele via imprimir o selected, o que vai marcar o option anteriormente escolhido.

Pro radio vale a mesma lógica...

Link para o comentário
Compartilhar em outros sites

  • 0
O $_POST e $_REQUEST guardam as informações de todos os tipos de inputs, isso dai se faz assim, na página "a" você tem o formulário, na "b" é o action, se der algum erro (no seu caso login duplicado) na "b", você tem que salvar as informações recebidas em sessões ($_SESSION) e ai retornar a página "a" e preencher os inputs com o que estiver nas sessões, no caso do SELECT, em cada option você vai ter que fazer uma verificação do tipo:

if($_SESSION['qualquercoisa'] == 'valor do option'){echo "selected";}

Onde o $_SESSION['qualquercoisa'] vai guarda o valor selecionado no select e ai em todos os options você repete isso dai, quando retornar verdadeiro, ou seja, $_SESSION['qualquercoisa'] for igual a 'valor do option' ele via imprimir o selected, o que vai marcar o option anteriormente escolhido.

Pro radio vale a mesma lógica...

Obrigado por ter respondido minha pergunta ESerra. Já havia pensado nesse algorítmo, mas o descartei por julgá-lo muito extenso e com muitos if's.

De todo modo, valeu!

Skin_

Link para o comentário
Compartilhar em outros sites

  • 0

Solução alternativa (pra não ter que ficar copiando um monte de ifs), cria uma função que faça isso, ai basta chamar a função para testar... o código vai ficar "mais bonito", mas o acho que no final das contas da na mesma...

Link para o comentário
Compartilhar em outros sites

  • 0
Solução alternativa (pra não ter que ficar copiando um monte de ifs), cria uma função que faça isso, ai basta chamar a função para testar... o código vai ficar "mais bonito", mas o acho que no final das contas da na mesma...
cria um array com as opções do <select> e itera sobre ele. Em cada iteração você verifica se o valor atual é igual ao valor informado. Dessa forma você fica com só 1 if e se quiser adicionar mais opções basta mexer no array

Acabei juntando as duas idéias... (Eu já tinha pensado nelas, mas achei que existia um jeito mais rápido, com menos código...)

Essa é a maneira mais elegante de resolver a questão?

Valeu!

André

Editado por Skin_
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...