Ir para conteúdo

POWERED BY:

Arquivado

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

Felipe Myth

Problema para implementar!

Recommended Posts

olá galera! seguinte, estou tentando fazer minha primeira página utilizando ajax, mas não estou conseguindo implementá-la! vou explicar direitinho pra vcs:

 

eu tenho uma pagina de javascript com o seguinte codigo:

 

function GetXmlHttpObject()
{
	var xmlHttp=null;
	
	try{
 		// Firefox, Opera 8.0+, Safari
 		xmlHttp=new XMLHttpRequest();
 		}
		catch (e){
 			// Internet Explorer
 			try{
				  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
				  }
 				catch (e){
					  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
					  }
 		}
	return xmlHttp;
}

function carrega(n){
	
	var xmlHttp;
	
	var conteudo=document.getElementById("conteudo");
	conteudo.innerHTML='<div class="carregando">carregando...</div>';
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
		  alert ("Browser does not support HTTP Request");
		  return;
	  } 
	
	url = "funcoes.php?page="+n;
	
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
	
}

function stateChanged(){ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
		
			//Lê o texto
			var texto=xmlhttp.responseText;

			//Desfaz o urlencode
			texto=texto.replace(/\+/g," ");
			texto=unescape(texto);

 			document.getElementById("conteudo").innerHTML=texto;
 		} 
	}

 

bom, a funcao carrega é chamada no onclick do link, e essa funcao php q eu chamo no open, no final tem um echo(urlencode(file_get_contents(nome_do_arquivo))) para mandar pro ajax, o problema é o seguinte, quando clico no link, somente aparece escrito o carregando... q eu botei la no começo do codigo e nao aparece o conteudo do meu arquivo :(!!

 

alguem pode me ajudar a encontrar o erro? to precisando muito :( valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca alguns alert's no seu código.. e ve onde ele para de executar.... ai você acha o erro rapidinho..

 

 

Abraços....

Compartilhar este post


Link para o post
Compartilhar em outros sites

aew galera agora consegui resolver meu problema, mas somente no firefox!! no internet explorer ainda nao funciona!! pelo que me parece, ele ateh abre a pagina em ajax, mas depois ele abre a pagina que esta no href do hyperlink em seguida!! e nao era pra fazer isso!

 

 

function carrega(valor) {
url="scripts/funcoes.php?page="+valor;
var conteudo=document.getElementById("conteudo");
	conteudo.innerHTML='<div class="carregando">carregando...</div>';
	
ajax(url);

}

function ajax(url) {
req = null;

// Procura por um objeto nativo (Mozilla/Safari)
if (window.XMLHttpRequest) {
req = GetXmlHttpObject();
alert("oi2");
req.setRequestHeader("Pragma", "no-cache");
req.onreadystatechange = processReqChange;
req.open("GET",url,true);
req.send(null);

// Procura por uma versão ActiveX (IE)
} else if (window.ActiveXObject) {

req = GetXmlHttpObject();
alert("oi");
if (req) {
req.setRequestHeader("Pragma", "no-cache");
req.onreadystatechange = processReqChange;
req.open("GET",url,true);

req.send();
}
}
}

function processReqChange() {
// apenas quando o estado for "completado"
//alert(req.readystate + " " + req.status);
if (req.readyState == 4) {
// apenas se o servidor retornar "OK"
if (req.status ==200) {
document.getElementById('conteudo').innerHTML = req.responseText;

} else {
alert("Houve um problema ao obter os dados:n" + req.statusText);
}
}
}

agora nao tenho ideia de como arrumar isso :(, porcaria de IE! qualquer ajuda é bem-vinda! valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

aew galera agora consegui resolver meu problema, mas somente no firefox!! no internet explorer ainda nao funciona!! pelo que me parece, ele ateh abre a pagina em ajax, mas depois ele abre a pagina que esta no href do hyperlink em seguida!! e nao era pra fazer isso!

 

segue meu javascript pra fazer o ajax:

 

 

function carrega(valor) {
url="scripts/funcoes.php?page="+valor;
var conteudo=document.getElementById("conteudo");
	conteudo.innerHTML='<div class="carregando">carregando...</div>';
	
ajax(url);

}

function ajax(url) {
req = null;

// Procura por um objeto nativo (Mozilla/Safari)
if (window.XMLHttpRequest) {
req = GetXmlHttpObject();
alert("oi2");
req.setRequestHeader("Pragma", "no-cache");
req.onreadystatechange = processReqChange;
req.open("GET",url,true);
req.send(null);

// Procura por uma versão ActiveX (IE)
} else if (window.ActiveXObject) {

req = GetXmlHttpObject();
alert("oi");
if (req) {
req.setRequestHeader("Pragma", "no-cache");
req.onreadystatechange = processReqChange;
req.open("GET",url,true);

req.send();
}
}
}

function processReqChange() {
// apenas quando o estado for "completado"
//alert(req.readystate + " " + req.status);
if (req.readyState == 4) {
// apenas se o servidor retornar "OK"
if (req.status ==200) {
document.getElementById('conteudo').innerHTML = req.responseText;

} else {
alert("Houve um problema ao obter os dados:n" + req.statusText);
}
}
}

agora nao tenho ideia de como arrumar isso :(, porcaria de IE! qualquer ajuda é bem-vinda! valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

aew galera agora consegui resolver meu problema, mas somente no firefox!! no internet explorer ainda nao funciona!! pelo que me parece, ele ateh abre a pagina em ajax, mas depois ele abre a pagina que esta no href do hyperlink em seguida!! e nao era pra fazer isso!

segue meu javascript pra fazer o ajax:

agora nao tenho ideia de como arrumar isso :(, porcaria de IE! qualquer ajuda é bem-vinda! valeu!

Então o problema é que ele abre o href do link junto com a página chamada em AJAX.. é isso ???

 

Como está o seu <a href> ???...

 

Para chamar APENAS a função AJAX, use-o assim

<a href = "#" onClick = "FuncaoAjax()"> Click Me </a>

Se você definir alguma página no href.. ele irá processar o ajax, mas tb irá mostrar a página do href..

 

 

Ta compreendido ???

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá amigo ^^, eu fiz isso e deu QUASE tudo certo hehe!! só duas coisinhas nao ficaram do jeito q eu queria...

 

minhas paginas(html) que serao carregadas pelo ajax tem uma parte de estilo css dentro delas, colocados com a tag <style type="text/css> e dentro da tag umas classes, pois bem, no firefox é carregado perfeitamente o arquivo, e toda a formatação css é feita perfeitamente, fiquei feliz pra caramba ahuahuah, mas ai veio a decepção, fui abrir o site na porcaria do internet explorer e... nenhuma regra css q eu botei dentro da tag <style> no começo do arquivo funcionou... o site ficou feião.

 

quem quiser dar uma olhada, o site é www.pwbrasil.com, só ta funfando a parte de personagens :P, valeu galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá amigo ^^, eu fiz isso e deu QUASE tudo certo hehe!! só duas coisinhas nao ficaram do jeito q eu queria...

 

minhas paginas(html) que serao carregadas pelo ajax tem uma parte de estilo css dentro delas, colocados com a tag <style type="text/css> e dentro da tag umas classes, pois bem, no firefox é carregado perfeitamente o arquivo, e toda a formatação css é feita perfeitamente, fiquei feliz pra caramba ahuahuah, mas ai veio a decepção, fui abrir o site na porcaria do internet explorer e... nenhuma regra css q eu botei dentro da tag <style> no começo do arquivo funcionou... o site ficou feião.

 

quem quiser dar uma olhada, o site é www.pwbrasil.com, só ta funfando a parte de personagens :P, valeu galera!

 

Cara.. sei MUITO bem oq você está passando..

 

Eu sofri com isso na porcaria do IE....

 

Como resolvi ???

 

Simples...

 

Ao inves de colocar o CSS na página que será carregada.. coloquei na página que chama essa página... ai funfou que é uma beleza...

 

 

Então.. retire o <style> das páginas HTML que a função AJAX puxa.. e coloque ele dentro da página que chama a função..

 

Ta compreendido ???

 

 

Abraços....

Compartilhar este post


Link para o post
Compartilhar em outros sites

aew darkdemo, consegui resolver meu problema =D, valeu cara!

 

o que eu fiz foi tirar as regras css do começo do arquivo html que será carregado pelo ajax, e botar no final dele, ai funcionou no IE ahuahua, bug estranho hehe.

 

flws

Compartilhar este post


Link para o post
Compartilhar em outros sites

aew darkdemo, consegui resolver meu problema =D, valeu cara!

 

o que eu fiz foi tirar as regras css do começo do arquivo html que será carregado pelo ajax, e botar no final dele, ai funcionou no IE ahuahua, bug estranho hehe.

 

flws

tenta usar isso:

 

<style type="text/css">
		/*<![CDATA[*/
		<!--
			@import "css/style.css";
		-->
		/*]]>*/
</style>

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.