Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 50
Sexo: Masculino
Localização: Sampa/Itanhaem/Brasil
Contato:

Passando nome de funcao em variavel e excutando-a por variav

04-11-2008 15:16

Galera To com um problemão..
Tenho uma biblioteca ajax e no momento da resposta ele executa uma funcão que eu defino fora do arquivo da biblioteca... pois bem não estou conseguindo usar essa biblioteca e dar outro tipo de tratamento de dados visto eu querer usar a mesma biblioteca para outra função

no caso eu quero fazer assim:
function iniciaRequisicao(tipo,url,bool){ ajax.onreadystatechange=trataResposta("trataDados()"); /* AQUI CHAMA a funcao la embaixo que por sua vez chamara a função que eu vou definir dentro dos parenteses deveria conter uma variavel que eu vou passar em outro local, porem defini diretamente para testes.*/ ajax.open(tipo,url,bool); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; Charset=UTF-8"); //ajax.overrideMimeType("text/XML"); ajax.send(dadosUsuario); } ................... (N vo por o codigo todo so a parte que interessa.) function trataResposta(funcao){ //tempo(); if(ajax.readyState == 4){ if(ajax.status == 200){ trataDados() /* Aqui antigamente*/ teste = "funcao"; }else{ alert("Problema na comunicação com o objeto XMLHtppRequest."); } } }

pois bem estou tentando passar como exemplo a funçao trataDados dentro da funcao trataResposta;
fiz um teste jogando a funcao dentro da variavel com aspas sem sucesso, so para ver o pq mesmo passando por variavel nao estava indo, e se eu defino sem aspas ele executa a função, mas não consiguo adicionar uma função dinamicamente.

Galera como posso por uma função ex: funcao(nomedafuncao) chamar outra funcao?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17638
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Passando nome de funcao em variavel e excutando-a por variav

04-11-2008 15:57

Não entendi, você quer passar o resultado de uma função para outra função?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 50
Sexo: Masculino
Localização: Sampa/Itanhaem/Brasil
Contato:

Passando nome de funcao em variavel e excutando-a por variav

04-11-2008 16:09

Não na verdade o ajax como sabemos temos que tratar a resposta no final, e para isso teriamos que sempre estar criando uma funçao de tratamento.
intão o que eu queria era passar o nome da função por uma outra função, para eu usar a biblioteca para diversas aplicações.

No caso eu consegui.... apenas troquei no onreadystatechange=trataResposta por onreadystatechange=variavel

desse modo consigo especificar divesos modos de tratamentos. vou colocar o código inteiro para você ver como ficou.

var ajax; var dadosUsuario; function requisicaoHTTP(tipo,url,assinc,trata) { if(window.XMLHttpRequest){ ajax = new XMLHttpRequest(); } else if(window.ActiveXObject){ ajax = new ActiveXObject("Msxml2.XMLHTTP"); if(!ajax){ ajax = new ActiveXObject("Microsoft.XMLHTTP"); } } if (ajax) iniciaRequisicao(tipo,url,assinc,trata); else alert("Seu navegador não possui suporte a essa aplicação"); } function iniciaRequisicao(tipo,url,bool,trata){ ajax.onreadystatechange=trata; ajax.open(tipo,url,bool,trata); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; Charset=UTF-8"); //ajax.overrideMimeType("text/XML"); ajax.send(dadosUsuario); } function enviaDados(url){ criaQueryString(); requisicaoHTTP("POST",url,true); } function criaQueryString(){ dadosUsuario=""; var frm = document.forms[0]; var numElementos = frm.elements.length; for(var i=0; i < numElementos; i++){ if(i < numElementos-1){ dadosUsuario += frm.elements[i].name+"=" + encodeURIComponent(frm.elements[i].value)+"&"; }else{ dadosUsuario += frm.elements[i].name+"=" + encodeURIComponent(frm.elements[i].value); } } }

o que eu fiz foi simples no momento de chamar a funçao requisicaoHTTP(var1,var2,var3,var4) a variavel 4 da funçao é o nome da funçao de tratamento.
Sendo assim la no onreadystatechange invez de definir a função direto coloco variavel 4 . e para cada funçao que eu quiser usar o ajax... eu crio uma funçao de tratamento em outro arquivo sem ser dentro da biblioteca...

Caso resolvido :D
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17638
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Passando nome de funcao em variavel e excutando-a por variav

04-11-2008 16:13

Boa :)
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado