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:
ajax:<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>
Código:
Y por ultimo el php: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(); }
Código:
Tambien aceptaria amablemente cualquier referencia a alguna pàgina con un script que pueda adaptar y funcione.... <?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>"; ?>
grácias de antemano.