Ir para conteúdo

POWERED BY:

Arquivado

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

Fabem

Problema com retorno em responseText

Recommended Posts

NO MEU CÓDIGO ABAIXO TÁ ACONTECENDO O SEGUINTE: NO RETORNO DA FUNÇÃO ("req.responseText") PARA VERIFICAR A RESPOSTA DO SCRIPT "publicar.php" a comparação "(req.responseText=='PUBLICADO')" não funciona, mas a opção "else window.alert(req.responseText);" funciona corretamente.

 

Por ex: o script publicar.php retorna PUBLICADO no caso de positivo, porém mesmo no caso de retorno positivo, não está fazendo a comparação corretamente, mas no retorno da função "else window.alert(req.responseText);" retorna window.alert('PUBLICADO') normalmente.

 

Se alguém tiver entendido o que eu quiz dizer aqui, que nem eu entendi direito ;), e souber o erro me dá uma ajudinha aí.

 

Valew

 

function ajax(url,change){	req = null;			if (window.XMLHttpRequest) {			req = new XMLHttpRequest();			req.onreadystatechange = change;			req.open("GET", url, true); 			req.send(null);		}		else if (window.ActiveXObject) {			   try {					  req = new ActiveXObject("Msxml2.XMLHTTP.4.0");					  }					 catch(e){				 try {					req = new ActiveXObject("Msxml2.XMLHTTP.3.0");				 }				 catch(e) {					try {					  req = new ActiveXObject("Msxml2.XMLHTTP");					}					catch(e) {					 try {						req = new ActiveXObject("Microsoft.XMLHTTP");					 }							catch(e) {							req = false;							}				   }						 }				   }			if (req) {				 req.onreadystatechange = change;				 req.open("GET", url, true);				 req.send();			}		}	}function publicar(){	if (req.readyState == 4) {		if (req.status == 200) {			if(req.responseText=='PUBLICADO'){				window.alert('Publicado');			}			else window.alert(req.responseText);		}		else {			alert("Houve algum problema ao obter os dados:\n" + req.statusText);		}	}}ajax('publicar.php?id='+id,publicar)

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que eu entendi... você esta fazendo uma confusão nos publicados ai...pq independente de cair no if ou no else o resultado sera publicado...tente colocar no else o window.alert('não publicado')e posta o arquivo php... mais exatamente onde tem a escrita da resposta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade se o retorno do arquivo PHP for igual 'PUBLICADO', retornará um window.alert('mensagem publicada ou outro texto'). Na lógica seria pra retornar esta mensagem na comparação se response.Text for igual a 'PUBLICADO', mas isto não está acontecendo, sempre cai no else retornando window.alert('PUBLICADO') mesmo o retorno do arquivo PHP for a palavra 'PUBLICADO'. Já quebrei a cabeça.

 

Valew

 

Aqui parte do código PHP.

 

 

<?$sql = "UPDATE tb_mural SET perm=1 WHERE id='$id'";$res = mysql_query($sql,$conexao) or die(mysql_error());if($res)	echo("PUBLICADO");?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes distoif(req.responseText=='PUBLICADO')coloca isso:alert( req.responseText +'\n'+ req.responseText.length )e posta o resultado ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

E meu caro. Realmente o problema estava aí.Pegando o tamanho da string, vi que estava vindo um espaço em branco de algum lugar. Como resolvi:var response = req.responseText.replace(" ","");//retira um espaço em branco se houverresponse = response.replace(" ","");//retira um segundo espaço em branco se houverAbraçosValew

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso retira todos os espacos em branco...

 

var response = req.responseText.replace(/\s/g,"");

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.