• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

fil79

problema AJAX

3 mensagens neste tópico

Boas

tenho um script(AJAX) que funciona perfeitamente no IE7 mas não no firefox.

Consiste em preencher uma textarea de acordo com o valor escolhido por uma dropdown.

No HTML invoco a função preencheTexto e passo dois argumentos(valor da dropdonw e indice da textarea (com o ID relatorio) a ser preenchida):

html

<select name='frases' onChange='preencheTexto(this.value,".$i.")'/> 

Ajax

var xmlHttp;
function preencheTexto(valor,indice)
{
if (valor.length==0)
  { 
  document.getElementById("relatorio"+indice).innerHTML="";
  return;
  }
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("O seu Browser não permite AJAX");
  return;
  } 

//PÁGINA QUE VAI FAZER UMA QUERY DE ACORDO COM O VALOR SELECCIONADO NA DROPDOWN (q)  
var url="gethint.php";
url=url+"?q="+valor;

xmlHttp.onreadystatechange;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);

//DEPOIS VAI PREENCHER A TEXTAREA DE ACORDO COM O VALOR DEVOLVIDO PELO SCRIPT GETHINT.PHP

document.getElementById("relatorio"+indice).innerHTML=xmlHttp.responseText;

}</script>

O erro dado pela consola de erros do firefox é o seguinte:

Erro: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIChannel.contentType]"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"

location: "JS frame :: file:///C:/Program%20Files/Mozilla%20Firefox/components/FeedProcessor.js :: FP_onStartRequest :: line 1440"  data: no]

Arquivo-fonte: file:///C:/Program%20Files/Mozilla%20Firefox/components/FeedProcessor.js

Linha: 1440

Agradeço qualquer ajuda!!


Edit|fnds: usa o geshituto :cheesygrin:
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se eu colocar assim:

xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  {
  document.getElementById("txtHint"+indice).innerHTML=xmlHttp.responseText;
  }
}

ao invés do simples:

document.getElementById("txtHint"+indice).innerHTML=xmlHttp.responseText;

funciona bem no firefox e deixa de funcionar no internet explorer

erro: "OS DADOS NECESSÁRIOS PARA CONCLUIR ESTA OPERAÇÂO AINDA NÃO ESTÃO DISPONIVEIS"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

aparentemente está resolvido:

function preencheTexto(valor,indice)
{
if (valor.length==0)
  { 
  document.getElementById("relatorio"+indice).innerHTML="";
  return;
  }
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("O seu Browser não permite AJAX");
  return;
  } 
var url="gethint.php";
url=url+"?q="+valor;
//url=url+"&id="+indice;
//xmlHttp.onreadystatechange;
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  {
  document.getElementById("relatorio"+indice).innerHTML=xmlHttp.responseText;
  }
}
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora