Webmaster общности: Predpriemach.com | SearchEngines.bg

    Контакт форма и AJAX

    Автор: mute

    Ще ви кожака една имеил форма която ползва аякс
    състои се от 3 фаила html формуляр , php скрипт за изпращането на писмото и js с които правим XMLHttpRequest-а

    mail.html

    <script src="mail.js" type="text/javascript">
    </script>
    <form name="mail" id="mail" action="#" >
    <fieldset>
    <legend> <b>Имейл форма</b> </legend>
    <div id="msg" style="font-size:18px;color:red">
    </div>
    
    Вашето име<br /><input type="text" name="name" id="name"/><br />
    Вашият имейл<br /><input type="text" name="email" id="email" /><br />
    Вашето съобщение<br /><textarea name="message" id="message" cols="20"></textarea><br />
    <input onclick="javascript: sendmail();" type="button" name="send" value="Изпрати съобщение" />
    </fieldset>
    </form>

    важна част от формуляра е всики input елемент е да има id

    mail.js

    var xmlHttp
    function GetXmlHttpObject()
    {
    var xmlHttp=null;
    
    try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
    // Internet Explorer
    try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    return xmlHttp;
    }
    
    function sendmail(){
    
    
    var name = document.getElementById('name').value;
    var email = document.getElementById('email').value;
    var message = document.getElementById('message').value;
    
    
    name = escape(name);
    message = escape(message);
    
    xmlHttp=GetXmlHttpObject()
    
    if (xmlHttp==null){
    
    alert ("Browser does not support HTTP Request")
    
    return
    
    }
    
    var url="mailsend.php?from="+email+"&name="+name+"&message="+message
    
    url=url+"&sid="+Math.random()
    
    
    xmlHttp.onreadystatechange=stateChangedmail
    
    xmlHttp.open("GET",url,true)
    
    xmlHttp.send(null)
    }
    
    function stateChangedmail() {
    
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
    
    document.getElementById("msg").innerHTML=xmlHttp.responseText
    
    }
    
    }

    И mailsend.php

    <?php
    
    
    $to='имеил за връзка';
    
    $msg=$_GET["message"];
    $headers = 'From: '.$_GET["from"];
    $name=$_GET['name'];
    $subject='contact form';
    $msg="\nMessage from: ".$name."\r\nwith email address: ".$headers."\r\n".$msg;
    if( !preg_match( "/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/", $_GET['from']))
    {
    die('Грешен меил адрес');
    }
    echo 'Съобщението изпратено успешно';
    mail($to1, $subject, $msg, $headers);
    ?>

    тук няма какво да обяснявам има един regexp за проверка на имеил адреса на изпращача и функцията mail която праща писмото

    Оставете коментар