@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('Ошибка. Данные не отправлены.');
    	}
 	});
}
  • Вопрос задан
  • 269 просмотров
Решения вопроса 2
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Почему Ajax не отправляет файлы?
По тому, что файлы в форме не сериализуются. Для отправки файлов можно использовать FormData, можно поискать тут, уже готовые решения, так же можно воспользоваться поиском и найти ответ по первой попавшейся ссылке.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы