Ir para conteúdo

POWERED BY:

Arquivado

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

joaogil

[Resolvido] Retornar dados do ajax em 2 divs separados

Recommended Posts

Pessoal, eu estou enviando um formulário de login via ajax e tudo está sendo retornado dentro de um div. O problem é que eu preciso que um texto retorne em outro div. Ou seja, em um div aparecerá a mensagem de erro, se o login ou senha estão errados, e num outro div separado aparecerá o "Olá Usuário!".

 

Tem como eu fazer isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não meu camarada, você não entendeu, só retorna um ou outro, dependendo se deu erro ou não, porém, se der erro deve retornar em um div e se NÃO der erro, o "olá usuário" deve aparecer em outro div. Mas eu só consigo saber isso depois que já enviei o formulário via ajax para a página php processar. Entendeu ?

 

Descobri um código que deixa o javascript da página chamada pelo ajax ser processado dentro do innerHTML, mas não funcionou no IEca. Se isso der certo já resolvo meu problema.

 

 

Acho que precisa arrumar seu código PHP então, como pode retornar "Olá usuário!" junto com "Usuário inválido"?

 

Valida melhor o seu PHP e retorna apenas o que de fato vai usar, e então manipula com jQuery.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

não seria 'apenas' fazer um IF ?

 

se voltar tal, coloca em tal lugar..

senão, coloca no outro lugar..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não porque, antes de enviar o formulário, na função javascript do ajax, eu já tenho que definir qual é o div de retorno do ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho... tá me parecendo 'mal feita', essa tua função AJAX.

Como você fez ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, a única forma que sei fazer ajax é quando os dados são retornados dentro de um div. Não sou expert em ajax.

Mas como expliquei acima, se eu conseguisse executar código javascript dentro do innerHTML, ou seja, fazer o javascript da página que chamei pelo ajax funcionar na página "mãe", resolveria meu problema e achei um código que permite isso, e funcionou inclusive no IE. Só estou fazendo os testes e depois posto a minha solução.

 

O que eu estava falando é que o ajax vai retornar em um div:

<div id="divRetornoAjax> <!-- aqui vai retornar o ajax, a mensagem de erro ou ok --> </div>

 

E em outro div, eu preciso mostrar o "olá usuário":

 

<div id="olaUsuario"></div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre como você fez o retorno, pois sem ver os teus códigos, é dificil imaginar como está a tua implementação de AJAX.

 

veja:

<!-- aqui vai retornar o ajax, a mensagem de erro ou ok -->
oque eu lhe disse, foi para testar esse retorno, se ele tiver o valor tal, você coloca o teu 'Olá em outro lugar', se não tiver, você faz outra coisa.. ou nada..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu já consegui fazer usando aquele esquema que falei de executar javascript dentro do innerHTML, mas vou postar a parte do ajax que faz o retorno. Só para esclarecer, a mensagem de erro ou sucesso que falei, é do login (se conseguiu ou não se logar) e não a mensagem de erro/sucesso da requisição do ajax.

 

if (xmlhttp.readyState==4){
			texto=unescape(xmlhttp.responseText.replace(/\+/g," "));
			document.getElementById(destino).innerHTML=texto;
			if(ancora != "")
				document.location.hash = ancora;
			ifila++;
			if(ifila<fila.length)setTimeout("ajaxRun()",20);
		}

Se precisar eu posto todo o script.

Obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, se eu entendi bem, a idéia é a seguinte:

if (xmlhttp.readyState==4){
                        texto=unescape(xmlhttp.responseText.replace(/\+/g," "));
                        if( texto=='tal-coisa' )
                             document.getElementById('divOla').innerHTML = 'Olá Mundo!';

                        document.getElementById(destino).innerHTML=texto;
                        if(ancora != "")
                                document.location.hash = ancora;
                        ifila++;
                        if(ifila<fila.length)setTimeout("ajaxRun()",20);
                }
era isso que eu tava tentando lhe falar..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ôpa Bruno, sem testar já vi que é isso mesmo! Não tinha pensado desta forma, obrigadão !!!

Como te falei, também consegui fazer aquele esquema de executar o javascript, aí eu fiz miséria com o jquery, por isso vou deixar desta forma, mas qualquer coisa eu mudo para o seu exemplo, que inclusive vai ser útil futuramente.

 

Abraço !

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.