Как прикрепить файл к форме Ajax?

Доброго времени суток, есть стандартная форма, подскажите пожалуйста как и тчо нужно добавить чтоб можно было отправлять файлы в форме. (Сама форма работает - все гуд)
---
<script>
    function SendPost1() {
        jQuery.ajax({
            type: "GET",
            url: "/send.php",
            data: jQuery("#forma2").serialize(),
            success: function(html) {
                jQuery(".wr").empty();
                jQuery(".wr").append("<button type='button' class='close' data-dismiss='modal' aria-hidden='true'>×</button><h2 style='margin-top: 20px; color: #fff;'><center>Ваше сообщение успешно отправлено. <br>Менеджер свяжется в течении 10-ти минут</center></h2>");
            }
        });
    } 
</script>
    <form action="" id="forma2" class="wr">
        <h3 class="black">Получить <span class="yellow">Консультацию</span></h3>
        <input type="text" name="name" placeholder="Введите имя" required="">
        <input type="text" name="tel" placeholder="Введите телефон" required="">
              <input name="file" value="1" size="40" type="file" />
     <button class="btn btn-default btn-form-2" type="button" onclick="SendPost1();"> ОТПРАВИТЬ </button>
    </form>

send.php
<?php
	//Получаем данные из глобальной переменной $_GET, так как мы передаем данные методом GET
	$name = $_GET['name']; // Вытаскиваем имя в переменную
	$tel = $_GET['tel']; // Вытаскиваем почту в переменную
	$k_form = $_GET['k_form']; // Вытаскиваем почту в переменную
	$email = $_GET['email']; // Вытаскиваем почту в переменную
	$file = $_GET['file']; // Вытаскиваем почту в переменную
	$comment = $_GET['comment']; // Вытаскиваем почту в переменную
	$price = $_GET['price']; // Вытаскиваем почту в переменную
	$message = "<strong>Имя: </strong>  $name <br> <strong>Телефон:</strong>  $tel <br> <strong>Почта</strong> - $email <br> <strong>Файл</strong> - $file <br> <strong>Комментарий: </strong>  $comment <br> <strong>Какая форма</strong>  $k_form"; // Формируем сообщение, отправляемое на почту
	$to = 'valera@gmail.com'; // Задаем получателя письма
	$from = "Al"; // От кого пришло письмо
	$subject = "Al  - Заявка с сайта"; // Задаем тему письма
	$headers = "From: $from\r\nReply-To: $to\r\nContent-type: text/html; charset=utf-8\r\n"; // Формируем заголовок письма (при неправильном формировании может ломаться кодировка и т.д.)
	if (mail($to, $subject, $message, $headers)) { // При помощи функции mail, отправляем сообщение, проверяя отправилось оно или нет
		echo "<p>Сообщение успешно отправлено</p>"; // Отправка успешна
	}
	else {
		echo "<p>Что-то пошло не так, как планировалось</p>"; // Письмо не отправилось
	}
?>
  • Вопрос задан
  • 790 просмотров
Пригласить эксперта
Ответы на вопрос 3
slo_nik
@slo_nik Куратор тега PHP
Добрый день.
Как загрузить изображение на сервер через AJAX?

P.S.
Кстати, зачем отправлять форму методом $_GET?
Потом, Вам надо прикрепить изображение к сообщению? Почему в вопросе об этом ни слова?
Если надо всё-таки прикрепить файл к сообщению, то на сервере используйте PHPMailer, проще прикрепить файл, да и гарантировано будет работать на хостинге.
В остальном всё без изменений, как в примере по ссылке.
Ответ написан
bootd
@bootd
Гугли и ты откроешь врата знаний!
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Во первых - метод формы должен быть POST
Во вторых - в любом материале из поиска гугула описано подробно как и что делать, в частности указаны ОБЯЗАТЕЛЬНЫЕ атрибуты для отправки файлов:processData: false, contentType: false,, однако сравнить 3 строчки вы поленились.
В третьих - в обработчике соответственно все параметры передаваемые на сервер будут $_POST, а файл будет лежать в отдельном глобальном массиве $_FILES.
Если вы совсем не разбираетесь - обратитесь на фриланс, в противном случае данной информации должно быть достаточно для решения вашей задачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
21 нояб. 2024, в 22:21
3000 руб./в час
21 нояб. 2024, в 21:42
100000 руб./за проект
21 нояб. 2024, в 21:30
500 руб./за проект