Ir para conteúdo

POWERED BY:

Arquivado

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

LeoO_DF

Manipulando resposta do $.post

Recommended Posts

Estou fazendo um novo sistema de Cadastro e nele eu uso javascript para verificar os campos do formulário e logo após uso $.post para posta o formulário sem dar refresh, Porem eu queria saber como manipular as Resposta do $.post, exemplo, estou Postando um novo email no formulário e na pagina da função post eu verifico se ele já está em uso se estiver ele retorna: 'Email em uso!' e eu queria pegar esse retorno e da focus no campo do email:

 

$.post('Administrativo/Conteudo/Novo_Cadastro.php',{ // Pagina em PHP para qual os dados seram repassados
Novo_Email: Email_Inserido
}, function(retorno){		
$("div#Erros_Avisos").html(retorno);
if(retorno = "Email em uso!")
{
Email_Input.focus();
}			
});

+/- assim, porem não exatamente, pelo que eu vi a função retorno não retorno exatamente o que está lá no documento, pois eu uso ela com alert e ela retorna todo o documento javascript, alguém poderia me dizer como fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não tiver, insira um "id" no "input" do email e depois é só setar o foco para ele.

Ex.: <input type="text" id="email" value="">

 

$.post('Administrativo/Conteudo/Novo_Cadastro.php',{ // Pagina em PHP para qual os dados seram repassados
	Novo_Email: Email_Inserido
}, function(retorno){		
	$("div#Erros_Avisos").html(retorno);
	if(retorno == "Email em uso!")
	{
		$("#email").focus(); //Setando o foco no campo email
	}			
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não tiver, insira um "id" no "input" do email e depois é só setar o foco para ele.

 

Ex.: <input type="text" id="email" value="">

 

$.post('Administrativo/Conteudo/Novo_Cadastro.php',{ // Pagina em PHP para qual os dados seram repassados
	Novo_Email: Email_Inserido
}, function(retorno){		
	$("div#Erros_Avisos").html(retorno);
	if(retorno == "Email em uso!")
	{
		$("#email").focus(); //Setando o foco no campo email
	}			
});

Eu sei, esse exemplo eu escrevi correndo o que eu quero saber é como Comparar o Retorno da $.post porque ele não funciona, tem vez que funciona ao depois não funciona fica meio estranho, eu quero saber como verificar se o retorno foi Email em uso e depois realizar uma função qualquer

Compartilhar este post


Link para o post
Compartilhar em outros sites


function Criar_Senha()

{

var senha = Mudar_Senha.nova_senha.value;

var senha_confirmar = Mudar_Senha.nova_senha_confirmar.value;

if(senha == '')

{

Mudar_Senha.nova_senha.focus();

return 1;

}

if(senha_confirmar == '')

{

Mudar_Senha.nova_senha_confirmar.focus();

return 1;

}

if(senha_confirmar != senha)

{

$("#Erros_Avisos").fadeIn('fast');

$("#Erros_Avisos").html('<?php echo $Texto['Troca-Senha'][25]; ?>');

return 1;

}

else

{

$("#Erros_Avisos").fadeIn('fast');

$("#Erros_Avisos").html('<?php echo $Texto['Troca-Senha'][26]; ?>');

$.post('Administrativo/Conteudo/Alterar_Senha.php',{ // Pagina em PHP para qual os dados seram repassados

ID_User: '<?php echo $Info_Usuario['user_id']; ?>',

Nova_senha: senha

}, function(retorno){

$("div#Erros_Avisos").html(retorno);

if(retorno == '<?php echo $Texto['Troca-Senha'][19]; ?>')

{

$("#Confirmar_Codigo").fadeOut('fast');

$("#Nova_Senha_Nova").fadeIn('fast');

return 1;

}

});

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim:

 

 

<div id="retorno">email</div>

 

var retorno = $("#retorno").html();	
if(retorno == "email")	
{
	$("#email").focus(); //Setando o foco no campo email		
}


Na div não poderá ter espaços.

 

Ex.:

 

Errado: <div id="retorno"> email </div>

 

Correto: <div id="retorno">email</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu usei:

$("div#Erros_Avisos").html(retorno);
			var resposta = $("div#Erros_Avisos").html();
			if(resposta == '<?php echo $Texto['Troca-Senha'][19]; ?>')	
			{
				$("#Confirmar_Codigo").fadeOut('fast'); $("#Avacar_Codigo").fadeOut('fast');
				setTimeout(function() { $("#Avancar_Senha").fadeIn('fast'); $("#Nova_Senha_Nova").fadeIn('fast'); },300);
				return 1;
			}

e Não foi '-'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o site tem sistema de múltiplas linguagens ele retorna a variavel php número 19 que é: 'Código Confirmado, Crie uma Nova Senha!'



Eu tentei a Função da um alert também no retorno porem ele ignora o alert e seta abaixo o html da div de Avisos, é como se ele apenas seta-se a div e depois para-se

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então coloque para cada código realizar uma ação:

if(retorno== 19)    
{
    $("#Confirmar_Codigo").fadeOut('fast'); $("#Avacar_Codigo").fadeOut('fast');
    setTimeout(function() { $("#Avancar_Senha").fadeIn('fast'); $("#Nova_Senha_Nova").fadeIn('fast'); },300);
    return 1;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Então coloque para cada código realizar uma ação:

if(retorno== 19)    
{
    $("#Confirmar_Codigo").fadeOut('fast'); $("#Avacar_Codigo").fadeOut('fast');
    setTimeout(function() { $("#Avancar_Senha").fadeIn('fast'); $("#Nova_Senha_Nova").fadeIn('fast'); },300);
    return 1;
}

Não tipo ele não retorno o número 19, ele retorna a Frase da variavel 19

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tipo ele não retorno o número 19, ele retorna a Frase da variavel 19

 

 

Então coloque:

if(retorno == "A frase da variavel")    
{
    $("#Confirmar_Codigo").fadeOut('fast'); $("#Avacar_Codigo").fadeOut('fast');
    setTimeout(function() { $("#Avancar_Senha").fadeIn('fast'); $("#Nova_Senha_Nova").fadeIn('fast'); },300);
    return 1;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Então coloque:

if(retorno == "A frase da variavel")    
{
    $("#Confirmar_Codigo").fadeOut('fast'); $("#Avacar_Codigo").fadeOut('fast');
    setTimeout(function() { $("#Avancar_Senha").fadeIn('fast'); $("#Nova_Senha_Nova").fadeIn('fast'); },300);
    return 1;
}

Nada, também tentei retornando um número e também nada '-', já tentei criar uma função e chama-la no retorno porem continua nada '--'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que se certificar se a variável "retorno" do javascript está retornando o que espara.

 

Tente colocar um alerta antes da condição para testar o que está vindo de "retorno".

alert(retorno);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Código:

$.post('Administrativo/Conteudo/confirmar_codigo.php',{ // Pagina em PHP para qual os dados seram repassados
			ID_User: ID_User,
			User_Codigo: User_Codigo
		}, function(retorno){	
			alert(retorno);	
			$("div#Erros_Avisos").html(retorno);
			var resposta = $("div#Erros_Avisos").html();
			if(resposta == '<?php echo $Texto["Troca-Senha"][17]; ?>')	
			{
				$("#Confirmar_Codigo").fadeOut('fast'); $("#Avacar_Codigo").fadeOut('fast');
				setTimeout(function() { $("#Avancar_Senha").fadeIn('fast'); $("#Nova_Senha_Nova").fadeIn('fast'); },300);
			}			
		});

Retorno:

k7bYaXf.png

 

Ele retorna o código da minha pagina de rastrear o estado do usuário e talz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Código:

$.post('Administrativo/Conteudo/confirmar_codigo.php',{ // Pagina em PHP para qual os dados seram repassados
			ID_User: ID_User,
			User_Codigo: User_Codigo
		}, function(retorno){	
			alert(retorno);	
			$("div#Erros_Avisos").html(retorno);
			var resposta = $("div#Erros_Avisos").html();
			if(resposta == '<?php echo $Texto["Troca-Senha"][17]; ?>')	
			{
				$("#Confirmar_Codigo").fadeOut('fast'); $("#Avacar_Codigo").fadeOut('fast');
				setTimeout(function() { $("#Avancar_Senha").fadeIn('fast'); $("#Nova_Senha_Nova").fadeIn('fast'); },300);
			}			
		});

Retorno:

k7bYaXf.png

 

Ele retorna o código da minha pagina de rastrear o estado do usuário e talz

 

 

 

Taí o problema, ele nunca vai retornar com a frase que vc deseja.

 

Pois vc está dizendo no seu código que:

onde tem uma tag com ID = "Erros_Avisos" é para colocar tudo que vem de "retorno" e para a variável "resposta" colocar o conteudo HTML de "retorno" ou seja, tudo isso aí que vc mostrou agora, claro diferente da frase que espera.

 

 

Mostre o código do seu arquivo "confirmar_codigo.php"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe a demora, está aqui o confirmar_codigo:

 

<?php
include_once('Funcoes/Localizacao.php');
include_once('Includes/selecionar_idioma.php');
include_once('Idiomas/'.$Idioma_Atual.'/primario.php');
require_once("Mysql_Conexao/Conexao.php");
include_once('Funcoes/nativas.php');
$Usuario = $_POST['ID_User'];
$User_Codigo = $_POST['User_Codigo'];
if(empty($Usuario)):
	echo $Texto['Troca-Senha'][14];
	return 1;
endif;
if(empty($User_Codigo)):
	echo $Texto['Troca-Senha'][14];
	return 1;
endif;
	$Verificar_Usuario = mysql_query("SELECT user_id,user_nick,user_complet_nome,user_nome,user_email,user_sexo,user_pais,user_estado,user_cidade,user_foto FROM `usuarios` WHERE `user_id`='".$Usuario."' LIMIT 1");
	if(mysql_num_rows($Verificar_Usuario)):
		$Info_User = mysql_fetch_array($Verificar_Usuario);
		$Checar_User = mysql_query("SELECT * FROM `users_codigos` WHERE `id_user`='".$Info_User['user_id']."' AND `tipo`='2'");
		if(mysql_num_rows($Checar_User)):
			$Checar_User_Codigo = mysql_query("SELECT * FROM `users_codigos` WHERE `id_user`='".$Info_User['user_id']."' AND `codigo`='".$User_Codigo."' AND `tipo`='2'");
			if(mysql_num_rows($Checar_User_Codigo)):
				echo $Texto['Troca-Senha'][17];
				mysql_query("DELETE FROM `users_codigos` WHERE `id_user`='".$Info_User['user_id']."' AND `codigo`='".$User_Codigo."' AND `tipo`='2'");
				return 1;
			else:
				echo $Texto['Troca-Senha'][16];
				return 1;
			endif;
		else:
			echo $Texto['Troca-Senha'][15];
			return 1;
		endif;
	else:
		echo $Texto['Troca-Senha'][8];
		return 1;
	endif;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável "retorno" está pegando o retorno do arquivo "confirmar_codigo.php".

 

Tente descobrir em condição está parando e substitua o $Texto['Troca-Senha'][xx] por "teste" e depois vá lá no seu js i coloque a condição:

 

            alert(retorno); 
   
            $("div#Erros_Avisos").html(retorno);
            var resposta = $("div#Erros_Avisos").html();
            if(resposta == 'teste')    
            {
                $("#Confirmar_Codigo").fadeOut('fast'); $("#Avacar_Codigo").fadeOut('fast');
                setTimeout(function() { $("#Avancar_Senha").fadeIn('fast');
                $("#Nova_Senha_Nova").fadeIn('fast'); },300);
            }

 

E veja se exibe o alert() = "teste".

 

 

Pois, creio que nas variáveis $Texto['Troca-Senha'][xx] estão retornando outras informações, menos a frase que deseja.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui, ele retorna a frase que eu quero o problema era as 2 primeiras includes, não sei exatamente porque

include_once('Funcoes/Localizacao.php'); include_once('Includes/selecionar_idioma.php');

Porem ele ainda não realiza a função da frase:

$("div#Erros_Avisos").html(retorno);
			if(retorno == '<?php echo $Texto['Troca-Senha'][17]; ?>')	
			{
				$("#Confirmar_Codigo").fadeOut('fast'); $("#Avacar_Codigo").fadeOut('fast');
				setTimeout(function() { $("#Avancar_Senha").fadeIn('fast'); $("#Nova_Senha_Nova").fadeIn('fast'); },300);
			}

 

 

Hm , já tentei usar teste, 1, e muitas outras mais ele não vai, é como se ele ignora-se a if()

 

 

 

 

Eu tentei o seguinte:

 

 

function User_Senha()
{
	if($("#Confirmar_Codigo").is(":visible"))
	{
		var ID_User = Nova_Senha.user_id.value;
		var User_Codigo = Nova_Senha.user_codigo.value;
		if(User_Codigo == '')
		{
			Nova_Senha.user_codigo.focus();
			return 1;
		}
		$("#Erros_Avisos").fadeIn('fast');
		$("#Erros_Avisos").html('<?php echo $Texto['Troca-Senha'][20]; ?>');
		$.post('Administrativo/Conteudo/confirmar_codigo.php',{ // Pagina em PHP para qual os dados seram repassados
			ID_User: ID_User,
			User_Codigo: User_Codigo
		}, function(retorno){
			$("div#Erros_Avisos").html(retorno);
			avaliando_respostas();			
		});
	}
	else
	{
		
	}
}
function avaliando_respostas()
{
	if($("div#Erros_Avisos").is(":visible"))
	{
		var Tentativas = 0;
		var resposta = $("div#Erros_Avisos").html();
		var Comparar_Variavel = '<?php echo $Texto['Troca-Senha'][17]; ?>';
		if(resposta == Comparar_Variavel)	
		{
			$("#Confirmar_Codigo").fadeOut('fast'); $("#Avacar_Codigo").fadeOut('fast');
			setTimeout(function() { $("#Avancar_Senha").fadeIn('fast'); $("#Nova_Senha_Nova").fadeIn('fast'); },300);
		}	
	}
}

Tipo eu dei alert nas 2 variaveis resposta e Comparar_Variavel e ambos estão retornando a mesma coisa, porem a função ainda não é realizada.

 

 

Hmm, Acho que achei o problema, print do alert de ambos:

 

 

 

 

g8k0WE4.png

 

Não sei de onde vem esses espaços em branco, a confirmar_codigo continua a mesma coisa, quando eu do alert apenas no retorno não aparece esses espaç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.