Jump to content


Photo

Error: Not Implemented


  • Faça o login para participar
6 replies to this topic

#1 fael

fael

    Turista

  • Usuários
  • 54 posts
  • Sexo:Não informado
  • Localidade:Gravataí-RS
  • Interesses:sistemas web

Posted 06/04/2006, 10:06

Pessoal,

Estou desenvolvendo um sistema com Ajax, mas está dando o erro not implemented quando tento passar um parâmetro para outra função:

O que está em negrito é onde está o erro:
/**
* Funções relacionadas ao AJAX.
*/
var req;

/**
* Passa os parâmetros para a página server-side, 
* que retorna o valor referente ao valor passado como parâmetro.
*/
function loadXMLDoc(url, param, value, element) {
	req = null;
	// Procura por um objeto nativo (Mozilla/Safari)
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		
		req.onreadystatechange = [b]processReqChange(element)[/b];
		req.open("GET", url+'?'+param+'='+value, true);
		req.send(null);
	// Procura por uma versao ActiveX (IE)
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChange(element);
			req.open("GET", url+'?'+param+'='+value, true);
			req.send();
		}
	}
}

/**
* Processa o retorno, se retornou e trata para não perder acentuação.
* Se não retornou nada mostra mensagem de erro.
*/
function processReqChange(element) {
	// apenas quando o estado for "completado"
	if (req.readyState == 4) {
		// apenas se o servidor retornar "OK"
		if (req.status == 200) {
			// Descodificando o retorno para jogar o valor na text
			var return_ = unescape(req.responseText).replace(/\+/g," ");
			document.getElementById(element).innerHtml = return_;
		} else {
			alert("Houve um problema ao obter os dados:\n" + req.statusText);
		}
	}
}

/**
* Só recebe parâmetros e passa o trabalho a função loadXMLDoc.
*/
function refresh_(url, param, value, element) {
	loadXMLDoc(url, param, value, element);
}

Valeu! (y)

Edição feita por: fael, 06/04/2006, 10:12.

Fael [Desenvolvedor Web]

================================

Tudo que nos acontece traz
experiência ou desenvolve alguma
qualidade que nos faltava.

================================

#2 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 06/04/2006, 10:08

Aonde? Qual linha? No Firefox?
Klaus Paiva
Conheça também: Taperás

#3 fael

fael

    Turista

  • Usuários
  • 54 posts
  • Sexo:Não informado
  • Localidade:Gravataí-RS
  • Interesses:sistemas web

Posted 06/04/2006, 10:14

O negrito desse editor do fórum não funciona dentro de code, dá uma olhada nesse código, está entre as tags b.

O erro dá no IE 7. Que é o que estou utilizando, ele já tem suporte a XMLHttpRequest.
Fael [Desenvolvedor Web]

================================

Tudo que nos acontece traz
experiência ou desenvolve alguma
qualidade que nos faltava.

================================

#4 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 06/04/2006, 10:28

Se já não bastasse ser o IE... o IE7 é beta. Não dá pra ser usado como parâmetro na hora de desenvolver...

Teste no Firefox ou no IE6.

E de qualquer jeito, você está associando a função errado. Seria assim:

req.onreadystatechange = function() { processReqChange(element) };


Klaus Paiva
Conheça também: Taperás

#5 edmais

edmais

    Just do it!

  • Usuários
  • 797 posts
  • Sexo:Não informado
  • Localidade:BH - MG

Posted 06/04/2006, 10:32

o problema se dá por causa da passagem de parâmetro (element) quando você fez um método receber uma função na linha em questão.

Sugestão:

Não passar parâmetro, deixar apenas:
req.onreadystatechange = processReqChange;

E em:

function processReqChange(element) {

Você coloca:
function processReqChange() {
document.getElementById("o id do elemento a ser usado").innerHTML = return_;

Existem outras formas de se resolver isso, mas acho esta, a mais fácil.


Ps: Tais como a que o klaus colocou anteriormente aí. Rs..

Edição feita por: edmais, 06/04/2006, 10:38.

Eduardo Batista

#6 fael

fael

    Turista

  • Usuários
  • 54 posts
  • Sexo:Não informado
  • Localidade:Gravataí-RS
  • Interesses:sistemas web

Posted 06/04/2006, 10:49

o problema se dá por causa da passagem de parâmetro (element) quando você fez um método receber uma função na linha em questão.

Sugestão:

Não passar parâmetro, deixar apenas:
req.onreadystatechange = processReqChange;

E em:

function processReqChange(element) {

Você coloca:
function processReqChange() {
document.getElementById("o id do elemento a ser usado").innerHTML = return_;

Existem outras formas de se resolver isso, mas acho esta, a mais fácil.


Ps: Tais como a que o klaus colocou anteriormente aí. Rs..


É que eu quero usar essa função de um modo genérico, passando os parâmetros, se eu colocar o id direto assim como vc está falando, terei que criar uma função para cada vez que for utilizar esse recurso. Vou tentar fazer o que o Klaus falou.

Valeu pessoal pelas respostas (y)


Beleza... fiz assim como o Klaus falou, mas agora não dá erro e tb não adiciona nada ao combo. já testei o retorno e está retornando conteúdo certinho, só não adiciona ao combo. Porque será?

Edição feita por: fael, 06/04/2006, 10:50.

Fael [Desenvolvedor Web]

================================

Tudo que nos acontece traz
experiência ou desenvolve alguma
qualidade que nos faltava.

================================

#7 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 06/04/2006, 11:41

E onde você adiciona ao combo?
Klaus Paiva
Conheça também: Taperás




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq