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

Передача данных на почту через ajax + php
Доброго времени суток, есть код ajax который передает данные input на почту, как можно сделать чтобы + к этим данным еще передавались данные хранящиеся в переменных, спасибо.
Я примерно понимаю как их ловить в php, но вот правильно передать через ajax не получается.
На всякий случай код php тоже выложил.

//Данные переменных a, b, c, нужно передать в обработчик с последующей отправкой на почту

var a = 'some text';
var b = 888;
var c = 123;

/* Передача формы в обработчик */
	$("#form").submit(function() {
		$.ajax({
			type: "POST",
		   url: "mailAjax.php",
		   contentType: false,
		   processData: false,
		   data: new FormData(this)
		}).done(function() {
			btn.disabled = true;
			$(this).find("input").val("");
			$("#form").trigger("reset");
			
			 
         $('.feedback__sent').fadeIn(300).delay(4000).fadeOut(400);			
						
		}).fail(function(){
			$("#form").trigger("reset");
			btn.disabled = true;
			 
         $('.feedback__error').fadeIn(300).delay(3500).fadeOut(400);
		});
		return false;
	});


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

$to = "email@gmail.com";


if ( !empty( $_FILES['file']['tmp_name'] ) and $_FILES['file']['error'] == 0 ) {
	if(in_array(strtolower(end(explode('.', $_FILES['file']['name']))), array('jpeg', 'jpg', 'gif', 'png', 'pdf', 'cdr', 'eps', 'ai', 'svg', 'doc', 'tif', 'psd')) and $_FILES['file']['size'] < 2000000) { 
			$filepath = $_FILES['file']['tmp_name'];
    		$filename = $_FILES['file']['name'];
	}
  } else {
    $filepath = '';
    $filename = '';
 }


$name = trim($_POST["name"]);
$tel = trim($_POST["tel"]);
$email = trim($_POST["email"]);
$message = trim($_POST["message"]);

$body = "Имя:\r\n".$name."\r\n\r\n";
$body .= "Контактный номер:\r\n".$tel."\r\n\r\n";
$body .= "E-mail:\r\n".$email."\r\n\r\n";
$body .= "Описание заказа:\r\n".$message;


	send_mail($to, $body, $email, $filepath, $filename);
}

function send_mail($to, $body, $email, $filepath, $filename)
{
  $subject = 'Тестовое письмо';
  $boundary = "--".md5(uniqid(time())); // генерируем разделитель
  $headers = "From: ".$email."\r\n";   
  $headers .= "MIME-Version: 1.0\r\n";
  $headers .="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n";
  $multipart = "--".$boundary."\r\n";
  $multipart .= "Content-type: text/plain; charset=\"utf-8\"\r\n";
  $multipart .= "Content-Transfer-Encoding: quoted-printable\r\n\r\n";

  $body = $body."\r\n\r\n";
 
  $multipart .= $body;
 
  $file = '';
  if ( !empty( $filepath ) ) {
    $fp = fopen($filepath, "r");
    if ( $fp ) {
      $content = fread($fp, filesize($filepath));
      fclose($fp);
      $file .= "--".$boundary."\r\n";
      $file .= "Content-Type: application/octet-stream\r\n";
      $file .= "Content-Transfer-Encoding: base64\r\n";
      $file .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
      $file .= chunk_split(base64_encode($content))."\r\n";
    }
  }
  $multipart .= $file."--".$boundary."--\r\n";
  mail($to, $subject, $multipart, $headers);
}
?>

Последний раз редактировалось TheSanches, 21.02.2019 в 19:46. Причина: Дополнение
Ответить с цитированием