Ir para conteúdo

Arquivado

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

Henrique Fleury

[Resolvido] Ajax

Recommended Posts

Boa tarde a todos.

 

Eu fazendo um site que tem um sistema de busca com isso eu vim aqui no imasters procura um bom sistema e acabei fazendo o sistema de busca do rogerio sistema de busca mas ai quando eu fui fazer o teste deu o esse erro:

 

linha: 19

Caractere: 3

Erro: Ajax nao esta definido

codigo 0

url: http://localhost/busca5/busca.php

 

A linha e essa:

 

16<script>

17 function recuperardados(){

18 var nome = document.form.nome.value;

19 var ajax = new Ajax();

20 ajax.Updater("listar.php?digito="+nome,"conteudo","get","carregando os dados...");

21 }

22</script>

 

Desde de ja agradeco a colaboracao de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

onde está a função Ajax();

 

cadê o resto do arquivo

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aprendiz e o seguinte o funcao ajax esta em um outro arquivo chamado ajax.js

 

function Ajax(){
	this.Updater=carregarDados;
	function carregarDados(caminhoRetorno, idResposta, metodo, mesagem) {
		var conteudo=document.getElementByld(Resposta)
		conteudo.innerHTML=mensagem;
		
		var xmlhttp=getXmlHttp();
		
		//Abre URL
		xmlhttp.open(metodo.toUpperCase(), caminhoRetorno, true);
		//Executa quando o navegador obtiver o código
		xmlhttp.onreadystatechange=function() {
			if(xmlhttp.readyState==4){
				//Le o texto
				var texto=xmlhttp.responseText;
				//Desfaz o urlencode
				texto=texto.replace(^+/g," ");
				texto=unescape(texto);
				//Exibe o texto no div conteúdo
				var conteudo=document.getElementByld(idResposta);
				conteudo.innerHTML=texto;
				
			}
		}
		xmlhttp.send(null);
	}
}
function getXmlHttp() {
	var xmlhttp;
	try{
		xmlhttp = new XMLHttpRequest();
	}catch (ee){
		try{
			xmlhttp= new ActiveXObject("Msxml2.XMLHttp");
		}catch(e){
			try{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(E){
				xmlhttp=false;
			}
		}
	}
	return xmlhttp;
}

e ai tem o arquivo busca.php

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form name="form" action="" onsubmit="return false">
<input name="nome" value="" onkeyup="recuperardados()">
</form>

<div id="conteudo">
</div>

<script>
	function recuperardados(){
		var nome = document.form.nome.value;
		var ajax = new Ajax();
		ajax.Updater("listar.php?digito="+nome,"conteudo","get","carregando os dados...");
	}
</script>
</body>
</html>

E para finalizar o arquvo listar.php

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<? 
	$con = mysql_connect("localhost","root","");
	mysql_select_db("test", $con);
	
	print urlencode("palavra <b>".$_GET['digito']."</b><br><br>");
	
	$sql = "select * from cliente where nome like '%".$_GET['digito']."%'";
	
	
	$rs = mysql_query($sql,$con);
	while($linha = mysql_fetch_array($rs)){
	print urlencode($linha['nome']."<br>");
	}
	mysql_close($con);
?> 
</body>
</html>

Ai aprendiz da um bisu ai no cod e ve se tem como me ajuda

Vlw

Abracao

Compartilhar este post


Link para o post
Compartilhar em outros sites

tira a função de dentro

function carregarDados(caminhoRetorno, idResposta, metodo, mesagem) {

var conteudo=document.getElementByld(Resposta)

conteudo.innerHTML=mensagem;

 

var xmlhttp=getXmlHttp();

 

//Abre URL

xmlhttp.open(metodo.toUpperCase(), caminhoRetorno, true);

//Executa quando o navegador obtiver o código

xmlhttp.onreadystatechange=function() {

if(xmlhttp.readyState==4){

//Le o texto

var texto=xmlhttp.responseText;

//Desfaz o urlencode

texto=texto.replace(^+/g," ");

texto=unescape(texto);

//Exibe o texto no div conteúdo

var conteudo=document.getElementByld(idResposta);

conteudo.innerHTML=texto;

 

}

}

xmlhttp.send(null);

}

da Ajax()

Compartilhar este post


Link para o post
Compartilhar em outros sites

você deve interligar os arquivos ne?!

Como você espera que a página HTML ache o script ajax se você não informar ???

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

<script src="ajax.js" type="text/javascript"></script>

</head>

 

<body>

<form name="form" action="" onsubmit="return false">

<input name="nome" value="" onkeyup="recuperardados()">

</form>

Faltou o famigerado:

<script src="ajax.js" type="text/javascript"></script>
Atente ao diretório.

Eu aqui supus que esteja tudo no mesmo nível.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu não pude ver isso?????

 

num acredito!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu não pude ver isso?????

http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Acontece, esquenta não. http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif

 

O erro tava mostrando isso:

Erro: Ajax nao esta definido

codigo 0

url: http://localhost/busca5/busca.php

Ajax é o nome do objeto que ele tentou instanciar.

Se não está definido, é pq não existe no escopo do busca.php http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

A hora que eu abro o arquivo pelo wamp5 ele ja mostra um erro que e o segiunte:

 

linha: 18

Caractere:26

Erro: Erro de sintaxe

no arquivo busca5.php

 

so n to vendo esse erro de sintaxe

Compartilhar este post


Link para o post
Compartilhar em outros sites

A hora que eu abro o arquivo pelo wamp5 ele ja mostra um erro que e o segiunte:

 

linha: 18

Caractere:26

Erro: Erro de sintaxe

no arquivo busca5.php

 

so n to vendo esse erro de sintaxe

Rapaz,

 

Tente entender um pouco o que está acontecendo. O único erro que eu enxergo é a falta da referência ao arquivo que contém a função AJAX(). Pelas suas respostas, parece que você não viu ainda que o erro está apenas em não ter chamado o arquivo JS na página. O caminho está incorreto, ao meu ver.

 

É simples, se você tem uma função separada num arquivo .js, você deve referenciar esse arquivo na página para usar a função. Entende?

 

 

[]`s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao Thompson

Porem depois que o William falo isso eu fui la no busca.php e fiz a correcao colocando o codigo

<script src="ajax.js" type="text/javascript"></script>

E mesmo assim ainda continuo a ter o erro esse que e o problema, ou eu tbm tenho que referenciar o buscar.php no ajax.js ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem vários erros ai.

Abre o Firebug do Firefox. O retorno de bugs de JS do IE não é muito confiável.

veja:

function carregarDados(caminhoRetorno, idResposta, metodo, mesagem) {
		var conteudo=document.getElementByld(Resposta)
O parâmetro é um, e oque está sendo usado é outro.

Deveriam coincidir!!

 

Tem erro na sintaxe dessa ER:

texto=texto.replace(^+/g," ");
A barra que escapa é para o outro lado: \, o + não faz sentido ali..

enfim, não entendi oque essa ER deveria fazer...

 

Nossa.. olha:

getElementByld

Tá um ÊLE ali..

a função é getElementById com Í !!

 

Onde você pegou esse script ? hauhuahua ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha o ultimo parâmetro tb!

mensagem

function carregarDados(caminhoRetorno, idResposta, metodo, mesagem) {
		var conteudo=document.getElementByld(Resposta)
		conteudo.innerHTML=mensagem;
Na função está sem o N !!

cuidado com erros de digitação!!!

 

Olha, oque a ER deveria fazer?

Usa esse script aqui:

function Ajax(){
	this.Updater=carregarDados;
	function carregarDados(caminhoRetorno, Resposta, metodo, mensagem) {
		var conteudo = document.getElementById(Resposta);
		conteudo.innerHTML=mensagem;
		
		var xmlhttp=getXmlHttp();
		
		//Abre URL
		xmlhttp.open(metodo.toUpperCase(), caminhoRetorno, true);
		//Executa quando o navegador obtiver o código
		xmlhttp.onreadystatechange=function() {
			if(xmlhttp.readyState==4){
				//Le o texto
				var texto=xmlhttp.responseText;
				//Desfaz o urlencode
			  //  texto=texto.replace(/g," ");
				texto=unescape(texto);
				//Exibe o texto no div conteúdo
				conteudo.innerHTML=texto;
				
			}
		}
		xmlhttp.send(null);
	}
}
function getXmlHttp() {
	var xmlhttp;
	try{
		xmlhttp = new XMLHttpRequest();
	}catch (ee){
		try{
			xmlhttp= new ActiveXObject("Msxml2.XMLHttp");
		}catch(e){
			try{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(E){
				xmlhttp=false;
			}
		}
	}
	return xmlhttp;
}
Pode substituir tudo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai William MUITO OBRIGADO cara resolveu esse problema http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Mas tipo eu so meio novato em programacao e qndo eu abro aqui ele esta dando outro erro

 

linha: 11

caractere: 1

erro: Objeto esperado

codigo: 0

no busca.php

 

Ai pelo jeito e mais facil eu faze um novo uhahuahuhuhuaahuahuahuuhauhua

 

Abracao rapa e VLW D++++ a ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

é cara.. isso é erro de Javascript

Te aconselho à postar no lugar correto. O povo mais "especializado" se encontra nos seus próprios fóruns.

 

A interpretação de erro do IE não ajuda muito.

Baixe o Firefox, e um plugin dele chamado FireBug.

Tem uma tecla de atalho, muito bacana: Ctrl + Shift + J Mostra exatamente o erro de Javascript que aconteceu.

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.