Отправка формы с данными и фалом по ajax

223
15 июля 2017, 09:47

Есть форма заказа, в ней есть поля имя, контакты, описание и поле для загрузки одного файла. Подскажите как правильно реализовать отправку этой формы по ajax c jquery, что бы и обычные инпуты собрать и файл ?

Answer 1
// Переменная куда будут располагаться данные файлов
var files;
// Вешаем функцию на событие
// Получим данные файлов и добавим их в переменную


$('input[type=file]').change(function(){
    files = this.files;
});
// Вешаем функцию ан событие click и отправляем AJAX запрос с данными файлов
$('.submit.button').click(function( event ){
    event.stopPropagation(); // Остановка происходящего
    event.preventDefault();  // Полная остановка происходящего
// Создадим данные формы и добавим в них данные файлов из files
var data = new FormData();
$.each( files, function( key, value ){
    data.append( key, value );
});
// Отправляем запрос
$.ajax({
    url: './submit.php?uploadfiles',
    type: 'POST',
    data: data,
    cache: false,
    dataType: 'json',
    processData: false, // Не обрабатываем файлы (Don't process the files)
    contentType: false, // Так jQuery скажет серверу что это строковой запрос
    success: function( respond, textStatus, jqXHR ){
        // Если все ОК
        if( typeof respond.error === 'undefined' ){
            // Файлы успешно загружены, делаем что нибудь здесь
            // выведем пути к загруженным файлам в блок '.ajax-respond'
            var files_path = respond.files;
            var html = '';
            $.each( files_path, function( key, val ){ html += val +'<br>'; } )
            $('.ajax-respond').html( html );
        }
        else{
            console.log('ОШИБКИ ОТВЕТА сервера: ' + respond.error );
        }
    },
    error: function( jqXHR, textStatus, errorThrown ){
        console.log('ОШИБКИ AJAX запроса: ' + textStatus );
    }
});
});
READ ALSO
Как отключить скрол контента

Как отключить скрол контента

Друзья, прошу сразу обратить внимание на сайт: Сайт

440
Как добавить маску в инпут?

Как добавить маску в инпут?

У меня есть свой компонент Input, менять который нежелательнои мне нужно сделать маску

231
Интеграция getresponse c drupal 7

Интеграция getresponse c drupal 7

Скачал плагин с офф сайта, установил, и сразу же в консоли выдает ошибку: Uncaught TypeError: Cannot read property 'onchange' of null at windowonload (js_my_file:119)

228