Skin_ Postado Novembro 6, 2007 Denunciar Share Postado Novembro 6, 2007 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_ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Novembro 6, 2007 Denunciar Share Postado Novembro 6, 2007 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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Skin_ Postado Novembro 6, 2007 Autor Denunciar Share Postado Novembro 6, 2007 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_ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Novembro 6, 2007 Denunciar Share Postado Novembro 6, 2007 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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 M@luco Belez@ Postado Novembro 6, 2007 Denunciar Share Postado Novembro 6, 2007 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Skin_ Postado Novembro 7, 2007 Autor Denunciar Share Postado Novembro 7, 2007 (editado) 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 arrayAcabei 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 Novembro 7, 2007 por Skin_ Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Skin_
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
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.