Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou com um problema numa página onde envia dados através de formulário. Servirá para inscrição, depoimentos, e contato, a mesma estrutura, porém usando dados diferentes.
A estrutura está funcionando em parte, com IE e Chrome, está OK, mas com FF, não há ação no botão do form.
Arquivo de JS:
var navegador = navigator.userAgent.toLowerCase(); //Cria e atribui à variável global 'navegador' (em caracteres minúsculos) o nome e a versão do navegador
//Cria uma variável global chamada 'xmlhttp'
var xmlhttp;
//Função que inicia o objeto XMLHttpRequest
function objetoXML() {
if (navegador.indexOf('msie') != -1) { //Internet Explorer
var controle = (navegador.indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'; //Operador ternário que adiciona o objeto padrão do seu navegador (caso for o IE) à variável 'controle'
try {
xmlhttp = new ActiveXObject(controle); //Inicia o objeto no IE
} catch (e) { }
} else { //Firefox, Safari, Mozilla
xmlhttp = new XMLHttpRequest(); //Inicia o objeto no Firefox, Safari, Mozilla
}
}
//Função que envia o formulário
function enviarForm(url, campos, destino) {
//Atribui à variável 'elemento' o elemento que irá receber a página postada
var elemento = document.getElementById(destino);
//Executa a função objetoXML()
objetoXML();
//Se o objeto de 'xmlhttp' não estiver true
if (!xmlhttp) {
//Insere no 'elemento' o texto atribuído
elemento.innerHTML = 'Impossível iniciar o objeto XMLHttpRequest.';
return;
} else {
//Insere no 'elemento' o texto atribuído
elemento.innerHTML = 'Carregando...';
}
xmlhttp.onreadystatechange = function () {
//Se a requisição estiver completada
if (xmlhttp.readyState == 4 || xmlhttp.readyState == 0) {
//Se o status da requisição estiver OK
if (xmlhttp.status == 200) {
//Insere no 'elemento' a página postada
elemento.innerHTML = xmlhttp.responseText;
} else {
//Insere no 'elemento' o texto atribuído
elemento.innerHMTL = 'Página não encontrada!';
}
}
}
//Abre a página que receberá os campos do formulário
xmlhttp.open('GET', url+'?'+campos, true);
//Envia o formulário com dados da variável 'campos' (passado por parâmetro)
xmlhttp.send(campos);
}
Ação do botão do form:
<form action="mailajax/processar.php" method="post" onSubmit="setarCampos(this); enviarForm('mailajax/processar.php', campos, 'divResultado'); return false;">
Arquivo processar:
<?php
//Determina o tipo da codificação da página
header("content-type: text/html; charset=iso-8859-1");
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00 GMT");
//Extrai os dados do formulário
extract($_GET);
//Verifica se algum nome foi digitado
$nome = utf8_decode(($txtNome != "") ? $txtNome : "desconhecido");
//Verifica se algum email foi digitado
$email = ($txtEmail != "") ? $txtEmail : "desconhecido";
//Retorna com a resposta
echo "Olá <b>".$nome."</b>, seu email é: <a href='mailto:".$email."'><b>".$email."</b></a>";
?>
O resultado pode ser testado em www.desafioparalelo10.com.br
Opção do menu:
Inscrições / Efetuar Inscrição.
Para mim só funciona com IE e Chrome
Carregando comentários...