Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TubaraoBR

Ação de botão do Form só não funciona com FF

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDO:

 

Pode encerrar o post... o código acima... está todo correto.

O que não está correto, é justamente o HTML do formulário antes e depois do SUBMIT.

Obrigado para quem leu e testou^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.