georgich
@georgich

Как реализовать загрузку данных jQuery?

Приветствую!
Перед тем как задать вопрос покажу что сделано: https://jsfiddle.net/uu1gjzmv/6/
Есть форма с инпутом текстовым, селектом (плагин jquery multiselect) и инпутом с мультивыбором файлов. Сейчас у меня реализована загрузка через метод $.post() jQuery. Но сама jQuery не может загружать файлы. Поэтому я начал изучать гугл и накнулся на это, это и это. Вот пытаюсь осмыслить, как это можно прикрутить в мой код. Но тут получается вот что. Метод $.post() из моего кода, а затем метод $.ajax() из приведенного кода по ссылкам будут вызывать одну и ту же страницу для выполнения два раза (в моём случае это страница add_profile.php). Подскажите, пожалуйста, как сделать вот это вот всё за один раз: и загрузку текстовых данных и загрузку изображений?
Спасибо!
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ответы на вопрос 1
heksen
@heksen
На клиенте прогоняете свой multiselect и заполняете массив:
var myFormData = [];
$.map($('#file')[0].files, function(element){  // #file - это ваш элемент input
myFormData.push(element);
})


Далее передаете это массив в параметры Post запроса ajax или post.

На сервере парсите массив и извлекаете значения:

foreach($_FILES as $a)
{
}


p.s. и текст и изображения можно поместить в Object.

var obj = new Object();
obj.text = 'здест текст';
obj.image = ваш элемент из массива files


и поместить далее Object в myFormData и передать на сервер.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы