Добрый день!
У меня такой вопрос, есть на сайте форма обратной связи и я хотел её клонировать и создать вторую форму с другим названием и полями, но после данных манипуляций первая и вторая форма работают не корректно, сообщения приходят, но при отправке, форма просто остается открытой, без уведомления что отправка прошла успешно.
Привожу код формы:
Код самих форм в шаблоне сайта, в них я поменял form id и action чтобы они были разные и путь до скрипта:
<!-- Первая форма -->
<script src="https://Мой домен.ru/contact.js"></script>
<form id="contact" action="Мой домен.ru/mail.php" method="post">
<H3 style="text-align: center;">Получить оптовую цену</H3>
<div id="note"></div>
<div id="fields">
<p><input type="text" name="namel" id="author" placeholder="Ваше имя:"></p>
<p><input type="tel" pattern="+7[0-9]{10}" name="tel" id="url" placeholder="Телефон в формате +7-999-999-99-99" required></p>
<p><input type="email" name="email" id="email" placeholder="Ваш E-mail:" required></p>
<!--p><input type="text" name="sub" id="url" placeholder="Тема" required></p-->
<p><textarea name="message" cols="1" rows="10" id="comment" placeholder="Введите сюда текст сообщения:"></textarea></p>
<p><input type="hidden" name="tit" value="Купить {{ heading_title }} " /></p>
<p><input type="hidden" name="sub" value="Пользователь хочет Получить оптовую цену на {{ heading_title }}" /></p>
<p style="text-align: center;"><button type="submit" id="submit" class="go">Отправить сообщение</button></p>
</div>
</form>
<!-- Вторая форма -->
<script src="https://Мой домен.ru/contactsf.js"></script>
<form id="contacts" action="https://Мой домен.ru/mails.php" method="post">
<H3 style="text-align: center;">Хочу купить дешевле</H3>
<div id="note"></div>
<div id="fields">
<p><input type="text" name="namel" id="author" placeholder="Ваше имя:"></p>
<p><input type="tel" pattern="+7[0-9]{10}" name="tel" id="url" placeholder="Телефон в формате +7-999-999-99-99" required></p>
<p><input type="email" name="email" id="email" placeholder="Ваш E-mail:" required></p>
<!--p><input type="text" name="sub" id="url" placeholder="Тема" required></p-->
<p><textarea name="message" cols="1" rows="10" id="comment" placeholder="Введите сюда текст сообщения:"></textarea></p>
<p><input type="hidden" name="tit" value="Купить {{ heading_title }}" /></p>
<p><input type="hidden" name="sub" value="Пользователь хочет Купить дешевле товар {{ heading_title }}" /></p>
<p style="text-align: center;"><button type="submit" id="submit" class="go">Отправить сообщение</button></p>
</div>
</form>
Код обработчика для первой формы выглядит так mail.php:
<?php
$post = (!empty($_POST)) ? true : false;
if($post) {
$namel = htmlspecialchars(trim($_POST['namel']));
$sub = htmlspecialchars(trim($_POST["sub"]));
$email = htmlspecialchars(trim($_POST['email']));
$message = htmlspecialchars(trim($_POST['message']));
$tit = htmlspecialchars(trim($_POST['tit']));
$tel = htmlspecialchars(trim($_POST['tel']));
$error = '';
if(!$namel) {$error .= 'Укажите свое имя. ';}
if(!$email) {$error .= 'Укажите электронную почту. ';}
if(!$sub) {$error .= 'Укажите тему обращения. ';}
if(!$message || strlen($message) < 1) {$error .= 'Введите сообщение. ';}
if(!$error) {
$ref = $_SERVER['HTTP_REFERER'];
$address = "sale@мой домен.ru";
$mes = "Заявка с кнопки (Получить оптовую цену)\n\nИмя: ".$namel."\n\nНомер телефона: ".$tel."\n\nПочта: ".$email."\n\nСообщение: ".$message."\n\nСтраница отправки сообщения:\n".$tit."\n".$ref."\n";
$send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = UTF-8\r\nReply-To:$email\r\nFrom:Магазин товаров <contact>");
if($send) {echo 'OK';}
}
else {echo '<div class="err">'.$error.'</div>';}
}
?>
Код обработчика для второй формы выглядит так mails.php:
<?php
$post = (!empty($_POST)) ? true : false;
if($post) {
$namel = htmlspecialchars(trim($_POST['namel']));
$sub = htmlspecialchars(trim($_POST["sub"]));
$email = htmlspecialchars(trim($_POST['email']));
$message = htmlspecialchars(trim($_POST['message']));
$tit = htmlspecialchars(trim($_POST['tit']));
$tel = htmlspecialchars(trim($_POST['tel']));
$error = '';
if(!$namel) {$error .= 'Укажите свое имя. ';}
if(!$email) {$error .= 'Укажите электронную почту. ';}
if(!$sub) {$error .= 'Укажите тему обращения. ';}
if(!$message || strlen($message) < 1) {$error .= 'Введите сообщение. ';}
if(!$error) {
$ref = $_SERVER['HTTP_REFERER'];
$address = "sale@мой домен.ru";
$mes = "Заявка с кнопки (Хочу купить дешевле)\n\nИмя: ".$namel."\n\nНомер телефона: ".$tel."\n\nПочта:".$email."\n\nСообщение: ".$message."\n\nСтраница отправки сообщения:\n".$tit."\n".$ref."\n";
$send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = UTF-8\r\nReply-To:$email\r\nFrom:Магазин товаров <contact>");
if($send) {echo 'OK';}
}
else {echo '<div class="err">'.$error.'</div>';}
}
?>
И наконец, то на что я грешу собственно и не знаю как с этим работать:
Скрипт для первой формы contact.js:
jQuery(document).ready(function($) {
$("#contact").submit(function() {
var str = $(this).serialize();
$.ajax({
type: "POST",
url: "https://мой домен.ru/mail.php",
data: str,
success: function(msg) {
if(msg == 'OK') {
result = '<div class="ok">Сообщение отправлено</div>';
$("#fields").hide();
}
else {result = msg;}
$('#note').html(result);
}
});
return false;
});
});
Скрипт для второй формы contactsf.js:
jQuery(document).ready(function($) {
$("#contacts").submit(function() {
var str = $(this).serialize();
$.ajax({
type: "POST",
url: "https://мой домен.ru/mails.php",
data: str,
success: function(msg) {
if(msg == 'OK') {
result = '<div class="ok">Сообщение отправлено</div>';
$("#fields").hide();
}
else {result = msg;}
$('#note').html(result);
}
});
return false;
});
});
Может быть это и глупый вопрос, но что нужно подправить в этих скриптах, чтобы формы работали не зависимо друг от друга и не влияли друг на друга?
Заранее спасибо!