Показать сообщение отдельно
  #1 (permalink)  
Старый 13.12.2018, 15:34
Аспирант
Отправить личное сообщение для TheSanches Посмотреть профиль Найти все сообщения от TheSanches
 
Регистрация: 21.01.2018
Сообщений: 78

Помогите прикрутить отправку файла к форме
Доброго времени суток, есть форма отправки писем, хочу сделать чтобы можно было еще и файл отправить, к примеру картинку, которая потом приходит вместе с письмом на почту.

Но не как не могу понять как это сделать, вложенный файл не приходит и все, есть подозрения что я не вытягиваю файл через ajax, но это только догадки.
Если кто разбирается, прошу помощи.

Код ниже...

<form id="form" class="form" autocomplete="off" enctype='multipart/form-data'>
<div class="feedback__input">
	<p><input type="text" name="name" placeholder="Введите ваше имя" required></p>
	<p><input type="email" name="email" maxlength="25" placeholder="Введите ваш email" required></p>
	<p><input type="text" name="phone" placeholder="Введите ваш телефон" class="phone"></input></p>
	<p><textarea name="textarea" placeholder="Введите ваше сообщение" required></textarea></p>
	<p><input type="file" name="file" class="file"></input></p> 
</div>
<div class="feedback__sent">
	<p>Ваше сообщение успешно отправлено</p>
</div>
<div class="feedback__error">
	<p>Произошла ошибка<br>сообщение не отправлено</p>
</div>
<div class="feedback__captcha">
	<input id='knopochka' type="checkbox" name="knopochka" class="feedback__checkbox">
	<label for='knopochka'><span>Я не робот</span></label>
</div>
<div class="feedback__btn">
	<button class="btn" disabled>Отправить</button>
</div>
</form>


$(document).ready(function() {
	var feedback = $('.feedback');
	var feedback__checkbox = $('.feedback__checkbox');
	var btn = document.querySelector('.btn');

	/* Блокировка и разблокировка кнопки чекбокс */
	feedback__checkbox.click(function(){
		if( $(this).is(':checked') ) {
			btn.disabled = false;
		} else {
			btn.disabled = true;
		}
	});
 
	/* Передача формы в обработчик */
	$("#form").submit(function() {
		$.ajax({
			type: "POST",
			url: "mail.php",
			data: $(this).serialize()
		}).done(function() {
			btn.disabled = true;
			$(this).find("input").val("");
			$("#form").trigger("reset");
			
			$('.feedback__sent').fadeIn(300).delay(4000).fadeOut(400);			
			/* Плавное появление блока 3мс, задержка 4сек, плавное изчезновение блока 4мс */			
		}).fail(function(){
			$("#form").trigger("reset");
			$('.feedback__error').fadeIn(300).delay(3500).fadeOut(400);
			btn.disabled = true;
		});
		return false;
	});
});


<?php
/* Скрытая антиспам защита + антиспам чекбокс */
if ($_POST['phone']!='' || $_POST['knopochka']==false){
  die();
}
else{

$recepient = "dreadsite@ukr.net"; 
$sitename = "Dread.com.ua";

$name = trim($_POST["name"]);
$email = trim($_POST["email"]);
$text = trim($_POST["textarea"]);

if ($_FILES){
	$file = $_FILES['filename']['name'];
	move_uploaded_file($_FILES['filename']['tmp_name'], $file);
}

$message = "ИМЯ: $name \n\nE-MAIL: $email \n\nТЕКСТ:\n\n $text\n\n $file";

$pagetitle = "Новое сообщение с сайта \"$sitename\"";
mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=utf-8 \r\n From: $recepient");
}
?>
Ответить с цитированием