Мне нужно извлечь данные из формы HTML с помощью javascript (+ Mootools) в том же формате вложенного объекта, который PHP увидит при публикации формы.
Я просто плохо гуглю или действительно нет ни родного, ни известного способа добиться этого? Я вижу, что многие другие задавали один и тот же вопрос на разных форумах, но до сих пор все они приняли решения, такие как jQuery serializeArray и тому подобное.
Я попробовал serializeArray с jsFiddle http://jsfiddle.net/7quxe/, и результаты меня разочаровали.
Ранее я сам написал сценарий для этого, и он работал довольно хорошо, за исключением некоторых проблем, когда в форме были перекрывающиеся поля смешанного типа ключа (<input name="foo[bar]" value="1"> and <input name="foo[]" value="2"
. Я уже начал работать над лучшей версией, но когда я обнаружил, что начинаю заново И снова я подумал про себя: существует множество отличных js-библиотек, которые нацелены на решение многих основных повседневных проблем, неужели желание извлечь данные из формы в правильно отформатированный объект не так уж распространено?
Вот пример того, что я пытаюсь:
<form method="post" action="/">
<input name="test" value="test">
<input name="nested[a]" value="a">
<input name="nested[b]" value="b">
<input name="nested[c]" value="c">
<input name="arraytest[]" value="foo">
<input name="arraytest[]" value="foo">
<input name="arraytest[]" value="foo">
</form>
Вот как PHP увидит это:
$_POST = array(
'test' => 'test',
'nested' => array(
'a' => 'a',
'b' => 'b',
'c' => 'c',
),
'arraytest' => array(
0 => 'foo1',
1 => 'foo2',
2 => 'foo3'
)
)
и это то, что я хотел бы получить в js:
{
test : 'test',
nested : {
a : 'a',
b : 'b',
c : 'c'
},
arraytest : { // This could also be an array ['foo1','foo2','foo3']
0 : 'foo1',
1 : 'foo2',
2 : 'foo3'
}
}