Ir para conteúdo

POWERED BY:

Arquivado

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

PS Design

Formulario de contato em Ajax

Recommended Posts

Ola pessoal , sou novo no forun.

Encontrei na net e encontrei um script de formulário de contato Ajax que não precisa atualizar para enviar os dados.

O formulário esta funcionando muito bem no IE o problema é que no Firefox ele simplesmente não da nenhum sinal de vida. Por favor, me ajudem a entender o pq desse problema.

Aqui esta o Script.

 

 

contato.php

<script src="funcoes_ajax.js"></script>

<script>
	function getSend()
   {
	  var nome, email, assunto, mensagem;
	  //FUNÇÃO QUE MONTA A URL E CHAMA A FUNÇÃO AJAX
	  nome = document.getElementById("nome").value;
	  email = document.getElementById("email").value;
	  assunto = document.getElementById("assunto").value;
	  mensagem = document.getElementById("mensagem").value;

	   if(!nome || !email || !assunto || !mensagem){
		  alert("Todos os campos são obrigatórios!");
		}
	   else {

			 //ENVIA ESSA URL
			 url="envia.php?nome="+nome+"&email="+email+"&assunto="+assunto+"&mensagem="+mensagem;
		   ajax(url);
	  
			 window.Submit.disabled = true;
			 document.getElementById("nome").value="";
			 document.getElementById("email").value="";
			 document.getElementById("assunto").value="";
			 document.getElementById("mensagem").value="";
		}
   }
   
   function setHabilita()
   {
	   var nome, email, assunto, mensagem;
	  nome = document.getElementById("nome").value;
	  email = document.getElementById("email").value;
	  assunto = document.getElementById("assunto").value;
	  mensagem = document.getElementById("mensagem").value;
	  if(nome || email || assunto || mensagem)
	  {
		  window.Submit.disabled = false;
	  }
   }
</script>

<div id="pagina"></div>
<table border="0" cellspacing="0" cellpadding="0" align="center">
  <!--DWLayoutTable-->
  <tr> 
	<td width="77" height="22">Nome:</td>
	<td width="210" valign="top"> 
	  <input type="text" name="nome" size="30" maxlength="255" onKeyPress="setHabilita()">	</td>
  </tr>
  <tr> 
	<td height="22">E-mail:</td>
	<td valign="top"> 
	  <input type="text" name="email" size="30" maxlength="255">	</td>
  </tr>
  <tr> 
	<td height="22">Assunto:</td>
	<td valign="top"> 
	  <input name="assunto" type="text" class="input1" size="30" maxlength="255">	</td>
  </tr>
  <tr> 
	<td height="28" valign="bottom">Mensagem</td>
	<td> </td>
	</tr>
  <tr> 
	<td height="115" colspan="2" valign="top"> 
	  <textarea name="mensagem" cols="37" rows="7" class="input1"></textarea>	</td>
  </tr>
  <tr>
	<td height="19"> </td>
	<td> </td>
	</tr>
  <tr>
	<td height="24" colspan="2" valign="top"> 
	  <input type="submit" name="Submit" value="Enviar e-mail" onClick="getSend()"></td>
  </tr>
</table>

funcoes_ajax.js

function ajax(url) 
{ 
   req = null; 
   // Procura por um objeto nativo (Mozilla/Safari) 
   if (window.XMLHttpRequest) { 
	  req = new XMLHttpRequest(); 
	  req.onreadystatechange = processReqChange; 
	  req.open("GET",url,true); 
	  req.send(null); 
   // Procura por uma versão ActiveX (IE) 
   } else if (window.ActiveXObject) { 
	  req = new ActiveXObject("Microsoft.XMLHTTP"); 
	  if (req) { 
		 req.onreadystatechange = processReqChange; 
		 req.open("GET",url,true); 
		 req.send(); 
	  } 
   } 
} 

function processReqChange() 
{ 
   // apenas quando o estado for "completado" 
   if (req.readyState == 4) { 
	  // apenas se o servidor retornar "OK" 
	  if (req.status ==200) { 
		 // procura pela div id="pagina" e insere o conteudo 
		 // retornado nela, como texto HTML 
		 document.getElementById('pagina').innerHTML = req.responseText; 
	  } else { 
		 alert("Houve um problema ao obter os dados:n" + req.statusText); 
	  } 
   } 
}

envia.php

<?php 
if(!empty($_GET["nome"]))
{ 

   $nome = $_GET["nome"];
   $email = $_GET["email"];
   $assunto = $_GET["assunto"];
   $mensagem = $_GET["mensagem"];

	 $seu_email="seres@seresdanoite.com";

	 $msg_contato="
	 Contato

	 Nome: $nome
	 E-mail: $email
	 Assunto: $assunto
	 Mensagem: $mensagem

	 IP: $REMOTE_ADDR";

	 $adicional_contato ="From: $nome <$email>";
	 mail($seu_email,$_GET["assunto"],$msg_contato,$adicional_contato);

	 echo "<center><b>Email enviado com sucesso!</b><center><br><br>";
} 

?>

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom uma coisa q percebi: você tem na funcao o getElementById (pega o objeto pelo ID) sendo que os objetos nao tem uma ID definida, entao defina... exemplo:

 

<input type="text" name="nome" id="nome" size="30" maxlength="255" onKeyPress="setHabilita()">

Outra coisa que ajuda a debugar seu codigo no FF é usar alguma ferramenta, por exemplo, eu uso o Firebug.

 

PS. To movendo seu topico pra area Ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom uma coisa q percebi: você tem na funcao o getElementById (pega o objeto pelo ID) sendo que os objetos nao tem uma ID definida, entao defina... exemplo:

 

<input type="text" name="nome" id="nome" size="30" maxlength="255" onKeyPress="setHabilita()">

Outra coisa que ajuda a debugar seu codigo no FF é usar alguma ferramenta, por exemplo, eu uso o Firebug.

 

PS. To movendo seu topico pra area Ajax.

 

 

 

 

andreia, muito obrigado, vo fazer isso aqui e vejo c vai dar certo.

Obrigado por mover. Desculpa por alguma coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei fazer mais não tive o resultado. que puder me ajudar com isso, esta me salvando.

Eu acho q o problema esta no onclick pois quando clico no botão ela não da nenhuma resposta, nem mesmo algum erro. simplismente ele fica do jeito que esta. acho q pelo firefox não esta consegunto buscar a função.

qum tiver vendo algum defeito no código poderia me ajudar.. .abrigado..

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.