есть скрипт отправки имейла в указанную почту. форма и сам скрипт на отдельных файлах. написанное в форме письмо не отправляется, еще при отправке данных с формы на секунду загружается action файл (action="send.php") файлы прилагаю. помогите плиз
разве так сложно выложить сюда? form.php HTML: <form id="form" method="post" action="send.php"> <h2 id="modal1Title">Оставьте ваши контактные данные и наш консультант свяжется <br>с вами</h2> <input type="text" class="putName" name="name" placeholder="Ваше ваше имя" required> <input name="phone" type="tel" class="putPhone" placeholder="Введите номер телефона" required> <input name="e-mail" class="putE-mail" placeholder="Введите вашу почту" required> <input type="text" class="putMail" name="mail" placeholder="Ваше сообщение" required> <input type="submit" name="submit" class="btn" value="ОТПРАВИТЬ"> <input type="hidden" name="formData" value="Заявка с сайта"> </form> send.php PHP: <? if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")&&(isset($_POST['e-mail'])&&$_POST['e-mail']!="")&&(isset($_POST['mail'])&&$_POST['mail']!="")){ //Проверка отправилось ли наше поля name и не пустые ли они $to = 'nurik_mary@mail.ru'; //Почта получателя, через запятую можно указать сколько угодно адресов $subject = 'Обратный звонок'; //Загаловок сообщения $message = ' <html> <head> <title>'.$subject.'</title> </head> <body> <p>Имя: '.$_POST['name'].'</p> <p>Телефон: '.$_POST['phone'].'</p> <p>Почта: '.$_POST['e-mail'].'</p> <p>Сообщение: '.$_POST['mail'].'</p> </body> </html>'; //Текст нащего сообщения можно использовать HTML теги $headers = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма $headers .= "From: Отправитель <from@example.com>\r\n"; //Наименование и почта отправителя mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail echo '<script>document.location.href="index.php"</script>'; } ?> script.js Код (Javascript): $(document).ready(function(){ $(window).scroll(function () {if ($(this).scrollTop() > 0) {$('#scroller').fadeIn();} else {$('#scroller').fadeOut();}}); $('#scroller').click(function () {$('body,html').animate({scrollTop: 0}, 400); return false;}); }); $(document).ready(function(){ $("#form").submit(function() { //устанавливаем событие отправки для формы с id=form var form_data = $(this).serialize(); //собераем все данные из формы $.ajax({ type: "POST", //Метод отправки url: "send.php", //путь до php фаила отправителя data: form_data, success: function() { //код в этом блоке выполняется при успешной отправке сообщения alert("Ваше сообщение отпрвлено!"); } }); }); });
так не надо HTML: <form id="form" method="post" action="send.php"> надо так HTML: <form id="form" method="post" action="/send.php"> такие пути от корня сайта надо указывать, начиная со слеша. шорттаги <? больше не поддерживаются. надо использовать длинные <?php PHP: <?php if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")&&(isset($_POST['e-mail'])&&$_POST['e-mail']!="")&&(isset($_POST['mail'])&&$_POST['mail']!="")){ //Проверка отправилось ли наше поля name и не пустые ли они $to = 'nurik_mary@mail.ru'; //Почта получателя, через запятую можно указать сколько угодно адресов $subject = 'Обратный звонок'; //Загаловок сообщения $message = ' <html> <head> <title>'.$subject.'</title> </head> <body> <p>Имя: '.$_POST['name'].'</p> <p>Телефон: '.$_POST['phone'].'</p> <p>Почта: '.$_POST['e-mail'].'</p> <p>Сообщение: '.$_POST['mail'].'</p> </body> </html>'; //Текст нащего сообщения можно использовать HTML теги $headers = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма $headers .= "From: Отправитель <from@example.com>\r\n"; //Наименование и почта отправителя mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail echo '<script>document.location.href="index.php"</script>'; } else { echo 'что-то не так'; } попробуй так.
письмо может и не дойдёт. ты не торопись. главное - получить ответное сообщение от send.php. а почта может не уходить по многим причинам, с ними потом разбираться будем.
забей на мессагу. вообще можешь удалить строчку с отправкой. ты должен получить сообщение либо об ошибке, либо об удачной отправке. используй МОЙ код, а не своё это вот.
это не сообщение об удачной отправке. это сообщение о том, что браузер сходит аяксом по урлу и получил там код 200 и какой-то ответ. Ответ ты не знаешь. Поэтому первым делом выведи себе ответ, чтобы знать: Код (Javascript): $.ajax({ type: "POST", //Метод отправки url: "send.php", //путь до php фаила отправителя data: form_data, success: function(reply) { //код в этом блоке выполняется при успешной отправке сообщения alert("Ответ сервера: " + reply); } }); ещё: исправь Код (Javascript): url: "send.php", //путь до php фаила отправителя на Код (Javascript): url: "/send.php", //путь до php фаила отправителя путь от корня!
устал уже с этим кодом.....помоги пож( внизу справа картинки ошибка такая... и еще, надо ли указывать в теге формы action="send.php" ? или все тки оставить пустым. просто видел где-то с подобным кодом акшн оставляется пустым ну чтоб не перезагружалась страница. а js файле указываем url к нему
Увидеть-увидел, но недопонял, однако. Если в форме не указан атрибут action, но есть input или button type="submit" - страница будет перезагружаться... только откроется эта-же форма... и при попытке обновить страницу получите повторную отправку данных... Но если при обработке данных выполнено перенаправление... (пусть на ту-же страницу) - повторной отправки данных не будет. А если js обрабатывает нажатие кнопки подтверждения отправки данных, или событие submit формы - то в этом случае всё зависит от js-обработчика... --- Добавлено --- А на скрине ошибка о том, что ресурс send.php не найден....
action оставил пустым, ошибка исчезла, алерт "успешно" вылез, НО сообщение на указанную почту не ушла и модальное окно с формой осталась открытой (форма на модальном окне), хотя я сделал перенаправление в send.php echo '<script>document.location.href="index.php"</script>' вот весь код: form.php HTML: <!-- Modal --> <div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-body"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <form id="form" method="POST" action=""> <h2 id="modal1Title">Оставьте ваши контактные данные и наш консультант свяжется <br>с вами</h2> <input name="name" type="text" class="putName" placeholder="Ваше ваше имя" required> <input name="phone" type="tel" class="putPhone" placeholder="Введите номер телефона" required> <input name="e-mail" class="putE-mail" placeholder="Введите вашу почту" required> <input name="mail" type="text" class="putMail" placeholder="Ваше сообщение" required> <input name="submit" type="submit" class="btn" value="ОТПРАВИТЬ"> <input type="hidden" name="formData" value="Заявка с сайта"> </form> </div><!-- End of Modal body --> </div><!-- End of Modal content --> </div><!-- End of Modal dialog --> </div><!-- End of Modal --> script.js Код (Javascript): $(document).ready(function(){ $("#form").submit(function() { var form_data = $(this).serialize(); $.ajax({ type: "POST", url: "send.php", data: form_data, success: function () { alert('Успешно'); }, error: function () { alert('возникла ошибка'); } }); return false; }); }); send.php PHP: <?php if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")&&(isset($_POST['e-mail'])&&$_POST['e-mail']!="")&&(isset($_POST['mail'])&&$_POST['mail']!="")){ //Проверка отправилось ли наше поля name и не пустые ли они $to = 'nurik_mary@mail.ru'; //Почта получателя, через запятую можно указать сколько угодно адресов $subject = 'Обратный звонок'; //Загаловок сообщения $message = ' <html> <head> <title>'.$subject.'</title> </head> <body> <p>Имя: '.$_POST['name'].'</p> <p>Телефон: '.$_POST['phone'].'</p> <p>Почта: '.$_POST['e-mail'].'</p> <p>Сообщение: '.$_POST['mail'].'</p> </body> </html>'; //Текст нащего сообщения можно использовать HTML теги $headers = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма $headers .= "From: Отправитель: from@example.com\r\n"; //Наименование и почта отправителя mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail echo '<script>document.location.href="index.php"</script>' } ?>;
консоль разработчика в браузере открывай, вкладка network, кликаешь, запрос уходит - смотришь ответ, код ответа, чешешь репу, кидаешь сюда вперед! Я в тебя верю, у тебя получится.
=DDDDD) никогда не занимался программированием)))))))........просто чтоб вы знали) на всякий случай , щас посмотрю) --- Добавлено ---
@Muhammet, ну нельзя же настолько нифига не знать и настолько бездумно копировать отсюда код... в твоём случае, с твоим расположением сайта, путь от корня до send.php будет /my_project/send.php. А вообще приучай себя под каждый проект делать локальный домен (в файлике host прописывать то есть). Всякие там Open Server это из коробки умеют, мне и ручками не сложно.