Jump to content

Recommended Posts

Всем привет!

Кто-нибудь может подсказать, как на сайте (не движок) организовать форму обратной связи, чтобы отправленное сообщение отправлялось прямо на почту?

Link to post
Share on other sites
  • Модератор

Пример на AJAX

 

Делаем форму отправки в теле страницы (вверху подключаем <script src="contactform.js"></script>)

<div id="note"></div>
<div id="fields">
<form class="m-form" action="" id="ajax-contact-form">
     <fieldset class="inlineLabels">
        <div class="ctrlHolder">
            <label for="name">Ваше имя:</label>
            <input type="text" name="name" id="name"  size="35" class="deftext required" value=""/>
            <p class="formHint"> <span class="error">Это поле обязательно для заполнения.</span></p>
        </div>
        <div class="ctrlHolder">
            <label for="phone">Контактный телефон:</label>
            <input type="text" name="phone" id="phone" size="35" class="deftext required" />
            <p class="formHint"> <span class="error">Это поле обязательно для заполнения.</span></p>
        </div>
        <div class="ctrlHolder">
            <label for="email">Адрес вашей электронной почты:</label>
            <input type="text" name="email" id="email" size="35" class="deftext required" value="" />
             <p class="formHint"> <span class="error">Это поле обязательно для заполнения.</span></p>           
        </div>
        <div class="ctrlHolder">
            <label for="message">Сообщение:</label>
            <textarea name="message" id="message" rows="25" cols="25" class="deftext required"></textarea>
            <p class="formHint"> <span class="error">Это поле обязательно для заполнения.</span></p>
        </div>
    </fieldset>
    <div class="buttonHolder">
        <button type="submit" class="m-button">Отправить</button>
    </div>
</form></div>

содержание contactform.js

jQuery(document).ready(function($) {


$("#ajax-contact-form").submit(function() {

var str = $(this).serialize();


$.ajax({

type: "POST",

url: "contact.php",

data: str,

success: function(msg) {


if(msg == 'OK') {

result = '<div class="notification_ok">Ваше сообщение было отправлено</div>';

$("#fields").hide();

} else {

result = msg;

}

$('#note').html(result);

}

});

return false;

});

});

содержание contact.php (где происходит обработка формы)

<?php  
$post = (!empty($_POST)) ? true : false;  
if($post)  
{  
$email = trim($_POST['email']);  
$name = htmlspecialchars($_POST['name']);  
$email = htmlspecialchars($_POST['email']);  
$mess = htmlspecialchars($_POST['message']);  
$phone = $_POST["phone"];
$message =$name.' - '.$phone.' - '.$email.'.....................'.$mess;
$error = '';  
if(!$name)  
{  
$error .= 'Вы не указали Ваше имя<br />';  
}  
// Check email  
function ValidateEmail($value)  
{  
$regex = '/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i';  
if($value == '') {  
return false;  
} else {  
$string = preg_replace($regex, '', $value);  
}  
return empty($string) ? true : false;  
}  
if(!$email)  
{  
$error .= 'Вы не указали ваш e-mail адрес<br />';  
}  
if($email && !ValidateEmail($email))  
{  
$error .= 'Проверьте правильность e-mail адреса<br />';  
}  
// Check message (length)  
if(!$message || strlen($message) < 50)  
{  
$error .= 'Пожалуйста, напишите нам подробнее. Вы практически ничего не написали<br />';
}  
if(!$error)  
{  
$headers=null;
$headers.="Content-Type: text/html; charset=utf-8\r\n";
$headers.="From: sait@mail.ru\r\n";  //от кого будет письмо
$subject = "Desing";
$to = 'mail@mail.ru'; //кому отправлять
$mail = mail($to, $subject, $message, $headers);
if($mail)  
{  
echo 'OK';  
}  
}  
else  
{  
echo '<div class="notification_error">'.$error.'</div>';  
}  
}  
?>

Не забудьте contact.php и contactform.js поставить в папку где и вызывается форма отправки почты (или пропишите к ним пути).

Link to post
Share on other sites
  • 1 month later...
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...