Ir para conteúdo

Arquivado

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

JeanSilvaa

Validação de formulário jQuery com PHP

Recommended Posts

Oi. Estou com dificuldade em desenvolver um sistema em jQuery e PHP para validar um formulário...

 

Estou usando HTTP POST request por que preciso verificar junto com o banco de dados.

 

Resumi o código explicando o que eu fiz pra ficar mais fácil de entender...

 

JavaScript:

$(document).ready(function()
{

function retorno()
{
function valor(){var vall = 0; return vall;} // defini aqui uma função que gera a var pra usar depois

$.post("ger.php",{nome: nome.value},function(data,status)
{
valor(); vall = eval("("+data+")");     // chama a var e atualiza com a resposta da pagina php
});
return vall;    // retorna o valor da pagina php
}


$("#form").submit(function(event)
{
var result = retorno();    // variavel que chama o conteudo da pagina php

if(result.e1==1){event.preventDefault(); alert("erro");}  // se retornar valor 1, cancela o submit e mostra um erro
else{} // se não, continua com o submit

});

});

PHP:

<?php

$array = array("e1"=>"1");
echo json_encode($array);

?>

body do HTML:

<form action="pagina.php" id="form">
<input type="text" name="form_nome" id="form_nome">
<input type="submit">
</form>

Tá bem resumido. Na verdade teria mais campos e não retornaria um alert... Enfim... Se alguém puder ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum.. tem alguns erros conceituais.

 

-> Ajax por padrão é assíncrono, então vc não vai conseguir capturar o retorno dele assim.

-> Essa função valor() declarada dentro da retorno() não faz sentido.

 

Sobre o que vc quer fazer, veja isso:

http://wbruno.com.br/ajax/verificar-se-usuario-ja-existe-no-banco/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu, William. Assim eu consegui. Mas, na real, eu precisava usar a resposta que vem do php de outra forma.

 

Tipo, se o valor do input ja existe no banco de dados, o formulário não é submetido e mostra uma mensagem de erro. Mas se não existir, ele segue normal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu faria o seguinte, traria uma resposta em json do php, e dependendo desta resposta, exibe o erro ou segue.

Ex:

Retorno do php.

{
    isError: true,
    error: [
        campo1: 'Já existe um usuário com este login',
        campo2: 'Não pode ser nulo'
    ]
}

No javascript você verifica se isError é true ou false;

<script type="text/javascript">
$('document').ready(function(){
     $('#form').on('submit', function(){
            var serialize = $(this).serialize();
            var action = $(this).attr('action');
            $.ajax({
                url: action,
                data: serialize,
                type: 'post',
                dataType: 'json',
                success: function(data) {
                      if(data.isError == true) {
                          $.each(data.error, function(field, value){
                               $('.error').append(field.' '.value);
                          });
                      } else {
                           window.location.href = 'pagina2.php'; 
                      }
                }
            })
     })
})
</script>

<form action="pagina.php" id="form">
<span class="error"></span>
<input type="text" name="form_nome" id="form_nome">
<input type="submit">
</form>

Não testei o código acima, mas creio que isso já te ajude.

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.