0
I have Ajax below, which works normally in Chrome, Firefox (no error in Firebug) and Opera:
/**
* Função para criar um objeto XMLHTTPRequest
*/
function CriaRequest() {
try{
request = new XMLHttpRequest();
}catch (IEAtual){
try{
request = new ActiveXObject("Msxml2.XMLHTTP");
}catch(IEAntigo){
try{
request = new ActiveXObject("Microsoft.XMLHTTP");
}catch(falha){
request = false;
}
}
}
if (!request)
alert("Seu Navegador não suporta Ajax!");
else
return request;
}
//Não executa nada até a execução terminar
var requestActive = false;
function getMotorista() {
if (requestActive) return;
requestActive = true;
// Declaração de Variáveis
/* Caso for necessário passar mais parametros além do nome
* basta adicionar uma variável aqui e editar no GET
*/
var ids = ["rg", "motorista"];
var registro = document.getElementById("registro").value; //CAMPO QUE VEM DO INDEX.PHP
var result = document.getElementById("cadastro"); //DIV DE RETORNO DOS DADOS
var xmlreq = CriaRequest();
// Exibe a mensagem de progresso
//result.innerHTML = '<img src="images/Progresso.gif"/>';
ids.forEach(function (id) {
document.getElementById(id).value = 'Aguarde...';
});
// Iniciar uma requisição
// Se for colocar mais variáveis, é aqui. Exemplo: processa.php?txtnome=" + nome + '&admissao=' + admissao
xmlreq.open("GET", "js/ProcessaMotorista.php?registro=" + registro, true);
// Atribui uma função para ser executada sempre que houver uma mudança de estado
xmlreq.onreadystatechange = function () {
// Verifica se foi concluído com sucesso e a conexão fechada (readyState=4)
if (xmlreq.readyState == 4) {
// Verifica se o arquivo foi encontrado com sucesso
if (xmlreq.status == 200) {
//Se o retorno foi vazio do Oracle
if (xmlreq.responseText == "") {
document.getElementById("registro").focus();
ids.forEach(function (id) {
document.getElementById(id).value = '';
});
//Se encontrou dados
} else {
//Aqui recebe os dados do processa.php, abre e aplica nos campos desejados
var dados = JSON.parse(xmlreq.responseText);
// função para preencher os campos com os dados
ids.forEach(function (id) {
document.getElementById(id).value = dados[id];
});
}
} else {
result.innerHTML = "Erro: " + xmlreq.statusText;
}
}
requestActive = false;
};
xmlreq.send(null);
}
What happens is that it would need to run on a data collector, running Windows CE and IE6. It does not appear nor error of not having ajax support, just does nothing.
Is there anything in it that you could do to make it work?
IE6 "Is there anything in it that works"?
– Guilherme Lautert
@Guilhermelautert The error log. Maybe.
– OnoSendai
Stupid IE is something that impresses. To get this routine to work I had to pass a second parameter + millisecond inside xmlreq.open. After that it worked. You’ll understand....
– Diego