Обработка массива элементов формы и сохранение
Есть строки таблицы(строй может быть много)
<tr class="actors_list_row"> <td align="center"> <input type="text" name="actor[0][actor_name]" class="input-actor" value="" size="70" /> <input type="hidden" name="actor[0][actor_id]" class="input-actor-id" value="" /> </td> <td align="center"><input type="text" name="actor[0][role]" class="input-role" value="" size="70" /></td> <td align="center"> <input type="text" name="actor[0][dub_name]" class="input-dub" value="" size="70" /> <input type="hidden" name="actor[0][dub_id]" class="input-dub-id" value="" /> </td> <td> <a href="javascript:void(0);" class="del_row"><img src="/assets/images/icons/delete.png" border="0" /></a> </td> </tr> Нужно получить массив вида var actors = {"actors": { "row1": { "a1":"b1", "c1":"d1", "e1":"f1", "g1":"h1", "i1":"j1" }, "row2": { "a2":"b2", "c2":"d2", "e2":"f2", "g2":"h2", "i2":"j2" } }}; Пока остановился на этом var arr = {"actors": {}}; var elems = {}; $.each($('.actors_list_row'), function(k, v){ $.each($(this).find('input'), function(key, value){ elems[$(this).prop('name')] = $(this).val(); return elems; }); arr.actors['row_'+k] = elems; }); Проблема в том что данные дублируются. Т.е. получается var actors = {"actors": { "row1": { "a1":"b1", "c1":"d1", "e1":"f1", "g1":"h1", "i1":"j1", "a2":"b2", "c2":"d2", "e2":"f2", "g2":"h2", "i2":"j2" }, "row2": { "a1":"b1", "c1":"d1", "e1":"f1", "g1":"h1", "i1":"j1", "a2":"b2", "c2":"d2", "e2":"f2", "g2":"h2", "i2":"j2" } }}; Вопрос номер 2. Можно ли для временного хранения использовать $.data() для input'а формы или лучше пересобирать в json-строку и сохранять как value поля? Как лучше преобразовать такой массив в строку json дабы потом передать на сервер обычным POST? PS! Пробовал json2, но массив корявится и в результате {name:"a1", value:"b1"...}/ Мне же важно сохранить имена полей как ключи. |
Часовой пояс GMT +3, время: 23:05. |