Ir para conteúdo

POWERED BY:

Arquivado

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

Sleazy

[Resolvido] Jquery Validate - success do submitHandler não funcio

Recommended Posts

Pessoal tenho o seguinte código

 

$(document).ready(function(){
	var validator = $("#form_cadastro").validate({
		errorContainer: "#messageBox",
		errorLabelContainer: "#messageBox",
		wrapper: "li",
			rules: {
				strNome: {
					required: true,
				}
				//demais campos...
			},
			messages: {
				strNome: {
					required: "Nome",
				}, 
				//demais mensagens...
			},
	submitHandler: function(form) {
		var options = {
			target: "#resposta", 
			url: "processa_cadastro.php",
			type: "post",
		
			success: function(resposta) {
				if(resposta=="true") {
					$("#resposta").html("<img src='imgs/loader.gif' alt='Enviando' /> Aguarde, redirecionando...")
					$(location).attr('href', 'http://localhost/cultura/index.php?pag=51')
				}else{
					$("#resposta").html("<img src='imgs/erro.gif' alt='Erro' /> Erro ao enviar os dados!")
					}
				}
			}
	 	$(form).ajaxSubmit(options);
		return false;
		}
	});
});

Os dados são validados no arquivo processa_cadastro.php que grava tudo certinho no banco e retorna true (dou um echo "true"), caso de algum erro retorna false.

O problema é que está retornando true mas quando entra no if do success o redirecionamento não está acontecendo, ele está indo para o else e mostra a mensagem de erro.

 

Alguém pode me dizer se há algo errado com esse código? Vlw...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou ele entra no if, ou entra no else... nos 2 é impossível.

 

faça o redirecionamento assim:

window.location.href='http://localhost/cultura/index.php?pag=51';

a fim de debugar, diga-nos oque retorna:

alert( resposta );
if( resposta ){

Compartilhar este post


Link para o post
Compartilhar em outros sites

William o alert está retornando "true", como não verifico o valor de resposta vai pro if e o redirecionamento acontece, mas se verificar se a resposta é true, false ou qualquer outra coisa, sempre vai pro else!

 

Alguma idéia do que pode ser??

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça o teu serverside, retornar um booleano... 0 ou 1

 

1 em caso de sucesso

e 0 em caso de falha

 

ai verifique se o entra no IF, apenas caso

if( resposta )
provavel que o 'true' esteja chegando como string, e não como booleano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William problema resolvido.

Realmente retornando um booleano funcionou. Ficou assim:

 

success: function(resposta) {
	if (resposta == 1) { //gravou no banco e redireciona
		window.location.href='http://localhost/cultura/index.php?pag=51';
	} else { //deu erro e mostra qual
		$("#resposta").html(resposta).show();
 		}
	}
}

Obrigado pela ajuda William!!

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.