Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.12.2015, 21:59
Новичок на форуме
Отправить личное сообщение для Armatus Посмотреть профиль Найти все сообщения от Armatus
 
Регистрация: 21.12.2015
Сообщений: 2

Ручное формирование FormData object
Доброго времени суток, форумчане!
Имеется задумка вручную формировать FormData object и отправить его ajax jquery.

Имеем динамически формируемая From'a и прочие элементы веб интерфейса, которыми пользователь может управлять. Нам надо собрать объект FormData и отправить его ajax'ом POST.

За ошибка в синтаксисе не ругайте =) Вопрос не в синтаксисе, а в пробеле знаний в области формирования объектов, и объектов типа FormData

Пример кода:

name = document.getElementsById....value;
body = document.getElementsById....value;
tags = document.getElementsById....value;
var data = new FormData();
data.append('name',name);
data.append('body',body);
data.append('tags',tags);

var options =  new FormData(document.getElementsById('form'));

data.append('options',options);
....
далее ajax post


Собственно в чем проблема! Мне нужно добавить свойство "options" объекта data, которое равно форме и отправить ajax'ом на сервер, таким образом, чтобы получить массив POST, например:

array (
  'name' => 'Name',
  'body' => 'Body',
  'tags' => 'Tags',
  'options' => array (
      'option1' => 'Option1',
      'option2' => 'Option2',
      'option3' => 'Option3',
      'option4' => 'Option4',
      'option5' => 'Option5',
      'option6' => 'Option6'
      .... ну и тд
  )
)


Как грамотно решить подобную задачу? =)
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2015, 14:31
Новичок на форуме
Отправить личное сообщение для Armatus Посмотреть профиль Найти все сообщения от Armatus
 
Регистрация: 21.12.2015
Сообщений: 2

Anybody home? =) Весь мозг сломал =) Не хочется отказываться от объекта FormData и формировать собственный объект с перебором формы... да и отправка файлов в таком случае дело проблемное =(
Ответить с цитированием
  #3 (permalink)  
Старый 23.12.2015, 15:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Во-первых:

'options' => array (
'option1' => 'Option1'
....

это многомерный массив, а вы добавляете ключ=значение. А вообще нет проблем с добавлением:

dForm.append('options[options1]', 'value');
.....
dForm.append('options[options6]', 'value');

если много, то подготовить строку url-запроса из массива как value для ключа options.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод delete для formData bartonom jQuery 8 06.04.2015 20:39
Event тега object после подгрузки svg контента внутри него Wahlberg Events/DOM/Window 8 26.01.2015 19:38
Борьба с Object.defineProperty в IE8 FINoM Оффтопик 46 04.09.2012 23:45
Тег object - как получить его document neon121 Events/DOM/Window 36 11.06.2012 19:57
Отправка формы с помощью XMLHttpRequest2 и FormData pav jQuery 3 05.10.2011 10:16