Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

juniordocpd

Formulário, Validação, Inserção, Resposta.

Recommended Posts

I aí galera do fórum, tudo bem aí com todo mundo?! Eu espero que sim. Esse é o meu primeiro tópico aqui... rs... e já venho trazer problemas, mas ainda assim, gostaria que me ajudassem. Estou começando agora com PHP, ou melhor, começando agora com Web. Estou criando uma página, para fins de estudos, onde o "usuário" irá cadastrar os seus dados (Nome, RG, CPF, endereço, data de nascimento, e-mail, etc, etc, etc). Comecei fazendo uma página simples, sem validação, sem nada, onde, após o usuário apenas faz o preenchimento e clica em enviar. Até aí os dados são inseridos normalmente no MySQL 5. Um detalhe apenas, é que estou utilizando a mesma página para apresentar a resposta para o usuário, ou seja, não quero ficar redirecionando e redirecionando e redirecionando... rs... apenas para mostrar aquela mensagenzinha: "Parabéns, cadastro concluído com sucesso.". Por tanto a estrutura da minha página é mais ou menos assim:

<? if $_Post["EnviarFormulario"] { valida as informações; insere no banco; imprime a mensagem de sucesso. } else { desenha o formulário; desenha os campos; aguarda o usuário preencher e enviar; } ?>

Ou seja, na mesma página eu verifico se o cara já "submeteu" o formulário, se não, é porque ele acabou de abrir a página, nesse caso eu desenho o formulário, mas quando ele "submete", faço a validação e as "parafernálias" todas. Só que estou tendo um problema. Eu estou fazendo a validação tanto do lado do cliente (javascript) quando do lado do servidor (php), ou pelo menos eu acho que estou fazendo. Tenho algumas funções de validação de data, e-mail, campo númerico, etc, mas no javascript eu mando elas serem acessadas da seguinte forma: <input type="submit" name="EnviarFormulario" value+"Cadastrar" onclick='ValidarFormulario()' /> Quando eu envio o formulário e ele dá erro, quando o javascript apresenta os alerts, mesmo assim ele submete o formulário. Na validação, se estiver tudo certo, no final da função de validação eu dou o comando "document.formulariocadastro.submit()". E se eu mudo o código do botão, para ele não enviar o formulário mesmo dando erro, o que acontece no código acima por ele ser um "Submit", ele não envia o formulário, faz tudo certinho, mas também depois ele e não entra no if em que deveria entrar, já que agora não estou mais enviando o formulário pelo botão. Em outras palavras, se eu deixo assim: <input type="button" name="EnviarFormulario" value+"Cadastrar" onclick='ValidarFormulario()' /> e o "usuário" preenche o formulário errado, ele entra na validação de JavaScript, dá o erro e para. Se o usuário corrige os campos e clica de novo, o formulário é enviado, porque tem o comando "document.formulario.submit()" no final da função de validação. Só que ele não entra aqui:ajudassem. Estou começando agora com PHP, ou melhor, começando agora com Web. Estou criando uma página, para fins de estudos, onde o "usuário" irá cadastrar os seus dados (Nome, RG, CPF, endereço, data de nascimento, e-mail, etc, etc, etc). Comecei fazendo uma página simples, sem validação, sem nada, onde, após o usuário apenas faz o preenchimento e clica em enviar. Até aí os dados são inseridos normalmente no MySQL 5. Um detalhe apenas, é que estou utilizando a mesma página para apresentar a resposta para o usuário, ou seja, não quero ficar redirecionando e redirecionando e redirecionando... rs... apenas para mostrar aquela mensagenzinha: "Parabéns, cadastro concluído com sucesso.". Por tanto a estrutura da minha página é mais ou menos assim:

<? if $_Post["EnviarFormulario"] { valida as informações; insere no banco; imprime a mensagem de sucesso. } else { desenha o formulário; desenha os campos; aguarda o usuário preencher e enviar; } ?>

Porque quem mandou o formulário foi a função e não o botão no estado submit, mesmo que esse tenha o nome "EnviarFormulario". Acho que ele não cria a variável $_POST["EnviarFormulario"], porque ele considera como 0 (zero). E se eu deixo o comando assim:<input type="submit" name="EnviarFormulario" value+"Cadastrar" onclick='ValidarFormulario()' /> Ele faz a validação, mas se tiver algum erro, ele informa o erro, mas mesmo assim ele "submete" o formulário, já que o tipo do botão é submit. Teria como eu cancelar pelo javascript o submit do botão se tiver algum erro? O que vocês acham de usar a mesma página para abrir o formulário, inserir, validar e mostrar a resposta caso haja sucesso na inserção, tipo, tudo em uma página só?! Esse jeito que eu estou fazendo com o if no meio da página dizendo o que ela deve mostrar é meio que uma programação "porca" de fazer? Ou isso pode ser utilizado sem problema? Alguém saberia me indicar uma outra forma de fazer que atenda o que eu estou querendo? Submete se não tiver nenhum erro, utilizando a mesma página. Caso haja erro, dá os avisos (alerts) e não submete. Por favor, se puderem me ajudar, ficarei muito grato. Agradeço antecipadamente aí a todo mundo que leu minha dúvida. Obrigado mesmo galera. Abraços, Falow.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pô Thiagão, primeiramente, valeu mesmo aí pela ajuda cara. Agora, só para eu entender um detalhe, se eu colocar assim no formulário: <form action="" method="post" onsubmit="return ValidarFormulario()"> Ele só vai "submeter" o formulário se o retorno da função for true? Se for false, ele só mostra os alerts e não manda o formulário, seria isso? Daí o botão continua como "type=submit" mesmo né?! E foi como eu falei cara, desculpa aí as perguntas, mas é que estou começando agora com PHP daí acaba aparecendo as dúvidas. Ow, que bom que gostou da estrutura da página, eu também gostei, mas só queria saber se era utilizado, se era viável fazer isso e tal. Mas MUITO OBRIGADO aí mesmo cara. Não tenho nada do código aqui, está tudo em casa, mas quando eu chegar, vou testar a forma que você falou, tomara que dê tudo certo... rs Valeu cara. Abraços,.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.