UZEIR
@UZEIR
Учусь. Пытаюсь развиваться.

В чем ошибка при отправки формы ajax?

Даже var_damp($_POST) NULL
пытаюсь отправлять файлы через ajax. Если contentType: false то $_POST пустой в противном случае работает. Но чтобы файлы отправлять нужен false

$(document).ready(function () {
    $("form").submit(function () {
        // Получение ID формы
        var formID = $(this).attr('id');
        // Добавление решётки к имени ID
        var formNm = $('#' + formID);
        $.ajax({
        type: "POST",
		cache: false,
		processData: false,
        contentType: false,
        url: 'mail.php',
        data: formNm.serialize(),
        success: function (data) {
        // Вывод текста результата отправки
        $(formNm).html(data);
        },
        error: function (jqXHR, text, error) {
        // Вывод текста ошибки отправки
        $(formNm).html(error);
        }
        });
        return false;
    });
});


<?php
if (true) {

    if (isset($_POST['name'])) {$name = $_POST['name'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['formData'])) {$formData = $_POST['formData'];}

//var_dump($_POST['formData']);

   $sourcePath = $_FILES['feedbackFile']['tmp_name'];
   if($sourcePath){
          // Storing source path of the file in a variable
$targetPath =  $_SERVER['DOCUMENT_ROOT']."/upload/".$_FILES['feedbackFile']['name']; // Target path where file is to be stored
move_uploaded_file($sourcePath,$targetPath) ;    // Moving Uploaded file
  }

    $to = "info@ya.ru"; /*Укажите адрес, га который должно приходить письмо*/
    $sendfrom   = "info@yandex.ru"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    $subject = "$formData";
    $message = "$formData<br> <b>Имя пославшего:</b> $name <br><b>Телефон:</b> $phone";
    $send = mail ($to, $subject, $message, $headers);
    if ($send == 'true')
    {
    echo '<center><p class="success">Спасибо за отправку вашего сообщения!</p></center>';
    }
    else 
    {
    echo '<center><p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p></center>';
    }
} else {
    http_response_code(403);
    echo "Попробуйте еще раз";
}
var_dump($_POST);
?>


<form id="form">
        <h2 id="modal1Title">Оставьте ваши контактные данные и наш консультант свяжется <br>с вами</h2>
        <input type="text" class="putName" name="name" id="name" placeholder="Ваше ваше имя" required>
        <input type="tel" name="phone" id="phone"  class="putPhone" placeholder="Введите номер телефона" required>
        <input type="file" id="feedbackFile" name="feedbackFile"  />
        <input type="submit" name="submit" class="btn" value="ОТПРАВИТЬ">
        <input type="hidden" name="formData" value="Заявка с сайта">
        <p style="margin:0;"><a style="font-size:12px; text-align:center; color:rgba(255, 255, 255, .3);" href="http://smartlanding.biz/ajax-forma-v-modalnom-okne.html">Хочу такую форму на свой сайт</a></p>
    </form>
  • Вопрос задан
  • 279 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы