У меня есть форма с глубокими многомерными входами, как так:
<form id="theForm">
<input type='text' name='one[two][three][]' />
<input type='text' name='one[two][three][]' />
<input type='text' name='four[five][six][seven]' />
<input type='text' name='eight[nine][ten]' />
</form>
Я пытаюсь отправить значение с помощью AJAX в том же формате, если форма была отправлена как обычно. Я имею в виду, что если бы я нажал кнопку отправки, на PHP, $ _POST выглядел бы так. Это то, что я хочу:
array('one' => array('two' => array('three'=>array([0] => "", [1] => ""))),
'four' => array('five' => array ('six' => array('seven' => ""))),
'eight' => array('nine' => array('ten' => "")))
)
Я по существу пытаюсь представить AJAX форму представления. Когда я
$("#theForm").serializeArray()
И посыла, что за $.post()
мой $ _POST выглядит следующим образом:
array([0] => array("name" => string "one[two][three][]", value=>"")
[1] => array("name" => string "one[two][three][]", value=>"")
[2] => array("name" => string "four[five][six][seven]", value=>"")
[3] => array("name" => string "eight[nine][ten]", value=>"")
)
Это не имеет смысла для меня. Мне нужно сохранить описанную выше многомерную структуру. Полагаю, я мог бы пройти через массив и нарезать струну, чтобы воссоздать то, что мне нужно, но это кажется мне для меня сумасшедшим. Является ли удобный способ jQuery для этого?
Я прочитал другие сообщения о том, как jQuery может отправлять многомерные массивы просто отлично, поэтому, может быть, вопрос, который мне нужно задать, - как я могу извлечь данные формы, сохраняя его в многомерном массиве?
[Проверьте этот ответ] (http://stackoverflow.com/a/1186309/575527). Это превращает форму в объект JS, который может сохранять структуру ключа-значения массива формы, правильно поворачивая элементы к объектам и массивам. – Joseph
Можете ли вы показать код, куда вы отправляете данные через AJAX? –