Где ошибка в форме обратной связи?

198
07 мая 2018, 22:23

На странице выводится две формы обратной связи. Первая работает корректно, вторая не работает. В чем может быть ошибка? И еще один момент: при нажатии на кнопку "отправить" скрипт уведомляет, что письмо отправлено. Но письмо на почту не поступает. Где-то есть ошибка? Подскажите, пожалуйста. Благодарю!

$(document).ready(function() { 
$("#feedback_submit").click(function(){  
     $.ajax({ 
        type: "POST", 
        url:"sendmail.php", 
        data:$("#callbacks").serialize(), 
        error:function(){$("#erconts").html("Произошла ошибка!");}, 
		beforeSend: function() { 
            $("#erconts").html("Отправляем данные..."); 
        }, 
		success: function(result){ 
			$("#erconts").html(result); 
			checkThis(); 
		} 
    }); 
    return false; 
}); 
});
<form name="MyForm" action="" id="callbacks" class="feedback_form" method="post"> 
					<input type="text" name="name" data-placeholder="true" placeholder="Как к вам обращаться?" required> 
					<input type="text" name="email" data-placeholder="true" placeholder="Ваш E-mail" required> 
					<input type="submit" value="Отправить" id="feedback_submit"> 
				</form> 
				<div id="erconts"></div> 
         
<form name="MyForm" action="" id="callbacks" class="feedback_form" method="post"> 
					<input type="text" name="name" data-placeholder="true" placeholder="Как к вам обращаться?" required> 
					<input type="text" name="email" data-placeholder="true" placeholder="Ваш E-mail" required> 
					<input type="submit" value="Отправить" id="feedback_submit"> 
				</form> 
				<div id="erconts"></div> 

<?php
if (isset($_POST["email"])){
if (isset($_POST["name"])) {$name = $_POST["name"];}
if (isset($_POST["email"])) {$email = $_POST["email"];}
if($name=="" or $email==""){
    echo "Заполните, пожалуйста, все поля!";
}else{
    $ip=$_SERVER["REMOTE_ADDR"];
$to = "pochta@mail.ru";
$subject = "Заявка!";
$headers .= "Content-Type: text/html; charset=UTF-8
";
$headers .= "From: Заявка с сайта";
$message = "
Имя: $name<br>
E-mail: $email<br><br>
--------------------------------------------------------<br>
---------------IP отправителя: $ip<br>
"; 
$send = mail($to, $subject, $message, $headers);

 if ($send == "true")
 {
 echo "Поздравляем! Ваша заявка принята!";
 }
 else
 {
 echo "Не удалось отправить, попробуйте снова!";
 }
}
}
?>
Answer 1

В Вашем html повторяются id элементов. Выборка по id - $("#...") - характерна тем, что возвращает обертку из набора элементов числом не более одного. Отсюда и проблемы.

Обычно в таких случаях id меняют на class.

READ ALSO
Как найти элемент в дереве по data через js?

Как найти элемент в дереве по data через js?

У меня есть в переменной значение alКак мне получить его номер data-dial-code = 355 ну или номер +350 со спана

213
Не понимаю скрипт

Не понимаю скрипт

Пожалуйста, помогите прочитать скрипт в общих словах какая строка что делаетЯ только только начал знакомиться с js и jquery

177
Поиск подстроки по маске

Поиск подстроки по маске

Нужно найти все варианты вхождения строки-шаблона в исходную строку

289
Проброс аутентификации

Проброс аутентификации

Прошу совет и/или пример как реализовать проброс авторизации: есть webapi сервис авторизации (выдающий bearer token),webapi сервис данных (реализующий...

243