@ruslanbm29

Почему Ajax не отправляет файлы?

Пишу для себя скрипт наполнения. Хочется сделать форму AJAX возможностью загрузки нескольких изображений. Я правда в нем вообще не разбираюсь, но нужно сделать. Что поправить в коде? Тыкните пальцем куда и что дописать или переписать.

Код приведенный ниже отправляет все значения из формы кроме изображений. В google chrome консоле показывает что все поля отправлены и скрипт их получает - записывает в базу, а вот сами изображения не приходят images[] - файл может быть выбран как один так и несколько. Если убираю отправку при помощи Ajax и ставлю напрямую то изображения присылаются

<form  method="post" name="1-form" id="1-form" enctype="multipart/form-data" action="">
<input name="name" value="" type="text" value="" size="30" aria-required="true">
<input name="title" value="" type="text" size="30" aria-required="true">
<textarea name="descr" id="comments" cols="45" rows="8" aria-required="true"></textarea>    
<input type="file" multiple name="images[]" class="f_input" accept="image/*">
<input name="submit" id="btn" type="submit" value="Ответить">
</form>


$( document ).ready(function() {
    $("#btn").click(
		function(){
			sendAjaxForm('result_form','1-form', '/content/ajax/add.php');
			return false; 
		}
	);
});

function sendAjaxForm(result_form, tool_form, url) {

    $.ajax(url,{
        type:     "POST", //метод отправки
        dataType: "html", //формат данных
        cache: false,
        data: $("#"+tool_form).serialize(),  // Сеарилизуем объект
        
        success: function(response) { //Данные отправлены успешно
        	result = $.parseJSON(response);
        	$('.commentlist').append(result.result_text);
        	
        	if(result.message) $('.count_result').html(result.message);
        	else if(result.error) $('.count_result').html(result.error);
    	},
    	error: function(response) { // Данные не отправлены
            $('.result_form').html('Ошибка. Данные не отправлены.');
    	}
 	});
}
  • Вопрос задан
  • 245 просмотров
Решения вопроса 2
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Почему Ajax не отправляет файлы?
По тому, что файлы в форме не сериализуются. Для отправки файлов можно использовать FormData, можно поискать тут, уже готовые решения, так же можно воспользоваться поиском и найти ответ по первой попавшейся ссылке.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект