Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/08/2010, 14:56
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 14 años, 4 meses
Puntos: 2
problemas con el formulario....

Buenas, es la segunda vez que hago algo con ajax... y me está volviendo loco.

Tengo un formulario de contacto bastante simple, pide 4 datos y manda los campos aun mail que le especifico en el archivo .php

Con Safari no hace nada (bueno si, me pone los _POST en la URL), ademas parece como si no le gustara el document.getElementById...

Con Firefox si que parece k funciona, solo que no envia el mail.

Llevo un rato buscando por todas partes (tanto en el codigo como por internet) y no consigo ver una solucion. De hecho ese codigo està reciclado de otra web, aunk cambiando algunas cosas que no deberian molestar....

Mi codigo:

HTML:
Código:
<div id="caixa_contacte">
			<div id="tancar_contacte"><a href="#">Tancar [X]</a></div>	
			<h1>Contacte</h1>
			<p>
			<form onsubmit="enviarMail(); return false" action="" name="form_contacte">
           
   <p>Nom: <input name="name" type="text" size="16" maxlength="16" /> </p>
   <p>Assumpte: <input name="subject" type="text" id="subject"size="32" maxlength="32" /></p>
   <p>e-mail: <input name="mail" type="text" id="mail" size="32" maxlength="32" /> </p>
   <p>Missatge: <br /> <textarea name="missatge" cols="40" rows="24" id="missatge"></textarea></p>
   <p><input type="submit" value="Enviar" />
	</form></p></p>
	<div id="resultado_mensaje" style="width:300px; height:30px; border:1px solid gray;">Resultado aqui.</div>
			
								
    </div>
ajax:
Código:
function nuevoAjax(){
        var xmlhttp=false;
        try{
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
                try {
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }catch(E){
                        xmlhttp = false;
                }
        }       
        if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
                xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
}
function enviarMail(){
       c = document.getElementById('resultado_mensaje');
   
       //variable=documenet.nombre_del_form.nombre_del_control.value
       name=document.form_contacte.name.value;
       subject=document.form_contacte.subject.value;
       mail=document.form_contacte.mail.value;
       missatge=document.form_contacte.missatge.value;
   
       ajax=nuevoAjax();
       c.innerHTML = '<p style="text-align:center;"><img src="esperando.gif"/></p>'; 
       ajax.open("POST", "sendform.php",true);
       ajax.onreadystatechange=function() {
       if (ajax.readyState==4) {
       c.innerHTML = ajax.responseText
       }
       borrarCampos()
       }
       ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
       ajax.send("nom="+name+"&subject="+subject+"&mail="+mail+"&missatge="+missatge)
}
function borrarCampos(){
       document.form_contacte.name.value="";
       document.form_contacte.subject.value="";
       document.form_contacte.mail.value="";
	   document.form_contacte.missatge.value="";
       document.form_contacte.name.focus();
}
Y por ultimo el php:
Código:
<?php
        $name=$_POST['name'];
        $subject=$_POST['subject'];
        $mail=$_POST['mail'];
        $missatge=$_POST['missatge'];
        $header = 'From: ' . $mail . " \r\n";
		$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
		$header .= "Mime-Version: 1.0 \r\n";
		$header .= "Content-Type: text/plain";

		//Estoy recibiendo el formulario, compongo el cuerpo
        $missatge = "Missatge enviat per " . $name . ", amb el tema " . $subject . " \r\n";
		$missatge .= "El seu e-mail es: " . $mail . " \r\n";
		$missatge .= "Missatge: " . $_POST['missatge'] . " \r\n";
		$missatge .= "Enviat el " . date('d/m/Y', time());
        //mando el correo...
		$pera = '[email protected]'; //la direccion que tengo en el script funciona, comprobado.
		
		mail($pera, $subject, utf8_decode($missatge), $header);
        //doy las gracias por el envio
        echo "<div style="background-color:green;color:white;padding:4px;text-align:center;">Gracias por rellenar el formulario. Se ha enviado correctamente. Enviale a otros contactos</div>";
?>
Tambien aceptaria amablemente cualquier referencia a alguna pàgina con un script que pueda adaptar y funcione....

grácias de antemano.