palkan_karabov
@palkan_karabov
PressF1

Как в FormData положить другой FormData?

Есть форма:
<form id="form">
	<input type="text" name="name"/>
	<input type="text" name="tel"/>
	<input type="submit" value="Отправить"/>
</form>

При отправки формы срабатывает скрипт:
var ftm_data = new FormData();
var ftm_form_data = new FormData(this);
ftm_data.append("ftm_form_data", ftm_form_data);
ftm_data.append("action", "ftm_form_submit");
jQuery.ajax({
	type: 'POST',
	url: "url",
	data: ftm_data,
	processData: false,
	contentType: false,
		success: function(data){
			  console.log(data);
		}
});

На сервере получаю следующее:
array() {
  ["ftm_form_data"]=>
  string(17) "[object FormData]"
  ["action"]=>
  string(15) "ftm_form_submit"
}

Понимаю, что делаю не правильно.
Суть в том что, обработчик формы должен быть универсальный поэтому, и может передаваться файлы, поэтому от serialize() отказался.
Собственно вопрос: как организовать объект в объекте и чтобы все работало норм?
  • Вопрос задан
  • 419 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Fortop
Tech/Team lead
Школа, школа, я скучаю.

Поскольку модераторы у нас не разбираются в тематике, и не в состоянии сделать самостоятельной оценки осмысленности комментариев, то оставим этот ответ будущим поколениям в таком виде.

Ах, ну и да. Автору вопроса медитировать на его же фразой об уникальности имен элементов и об уникальном индексе, который нужно указать в имени элемента внутри квадратных скобок.
До просветления.

Зачем вам объект в объекте?
Форма не может содержать другие формы.

Если вам требуется задать несколько однотипных элементов в рамках одного ключа php, то формируйте имя элементов в виде
name="element_key[unique]“

Ключевой момент тут в квадратных скобках, которые в php превратят element_key в массив.
А unique это некий уникальный индекс для каждого нового элемента (подставите вместо него), который будет ключом для этого элемента в php
Ответ написан
mattedev
@mattedev
web developer
Не проще 2 объекта запушить?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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