@Barbotkin
Web Developer

Как отправить $_FILES с формы в ajax?

есть код который отправляет все значения с формы в action: 'slider', кроме файла с именем поля "img":
$('.button').live('click', function(event){
	event.preventDefault();
	var id = $(this).parent("form").attr("id");
	var title = document.getElementById('title_slider'+id).value;
	var description = document.getElementById('description_slider'+id).value;
	var name_url_slider = document.getElementById('name_url_slider'+id).value;
	 var url_slider = document.getElementById('url_slider'+id).value;
	 var data = {
	         action: 'slider',
	         id_slider: id,
	         title: title,
	         description: description,
	         name_url: name_url_slider,
	         url_slider: url_slider
	};
    	$.post(MyAjax.ajaxurl,
	 	data,  
	 	function(response) {
	 	if (response.result)
		{                                                       
	    	$('#'+id).remove();
	        $('.inputs').html(response.html);
	        }else{
	                           //show().fadeOut(2000);
	         }     
		},'json');
	    	$('<div class="message" style="width: 415px; text-align: center; opacity: 0.7; color: #4F8A10; background-color: #DFF2BF;border-radius: 10px; padding: 8px;">save...ok</div>').fadeIn('slow').appendTo('#success'+id);
		$('.message').delay(500).fadeOut(); 
			
});

Но мне нужно отправить этот массив $_FILES поля "img" через ajax, как такое сделать?
есть пример отправки:
$("#mainForm").submit(function (event) {
    event.preventDefault();
    var data = new FormData($('#mainForm')[0]);
    $.ajax({
      type: "POST",
      url: "upload.php",
      data: data,
      contentType: false,
      processData: false,
      beforeSend: function() {
        $('#loader').show();
      }
    }).done(function (html) {
        $("#results").append(html);
        $('#loader').hide();
        $('#mainForm')[0].reset();
      });
  });


<form enctype="multipart/form-data" action="upload.php" method="POST" id="mainForm">
  <input id="uploadImage" type="file" accept="image/*" name="image[1]"/>
  <input id="button" type="submit" value="Upload">
</form>
<div id="results"></div>
<img style="display:none" id="loader" src="loader.gif" alt="Loading...." title="Loading...." />

Но я не могу объединить мой код отправки формы(первый код) с этим примером, а точнее я не знаю как правильно, пробовал и не работает, как объединить с моим кодом?
PS: пишу это все в вордпресе
  • Вопрос задан
  • 2543 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Barbotkin Автор вопроса
Web Developer
мне не надо плагин, так как у меня все отправляет и вывод как мне нужно, но одно, что не выходит это получить данные $_FILES в той же форме.
Путь указан правильно. Первая часть кода - для получения и отправки данных работает ПРАВИЛЬНО, и вторая для загрузки файла тоже работает верно, вопрос как мне обьеденить их в одну функцию и отправить все вместе, т.к. не хватает в первой функции только загрузки файла, а это 2-я функция
Ответ написан
Комментировать
Quber
@Quber
PHP Team lead
url: "upload.php",

Путь до файла указан правильно?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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