Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Множество форм в одной таблице (https://javascript.ru/forum/misc/28303-mnozhestvo-form-v-odnojj-tablice.html)

fennick 14.05.2012 15:19

Множество форм в одной таблице
 
На странице есть таблица с несколькими строками. В каждой строке есть два текстовых поля, которые пользователь может заполнить, и в самой правой ячейке каждой строки - кнопка "сохранить".
Задача такова: при нажатии кнопки должны сохраняться данные только конкретной строки. Была мысль разместить по форме на строку, но этот вариант был отброшен, как низящный...
Должно быть какое-то стандартное и проверенное решение! :) Буду рад подсказке.

Octane 14.05.2012 16:50

http://xmlhttprequest.ru/

fennick 15.05.2012 01:36

Спасибо за ответ, но речь шла не о формировании запроса, что само по себе, как раз, понятно, а о том, как поступить, когда требуется n-ное количество форм, каждая со своей кнопкой отправки данных. Каждая такая форма отображает данные из конкретной строки некой таблицы из БД, соответственно, при нажатии на кнопку будет происходить обновление только одной строки.

Octane 15.05.2012 12:47

Зачем вам много <form>, сделайте одну, по submit сохранение всех введенных данных, а по нажатию на кнопки в отдельных строках AJAXом отправляйте на сервер номер строки и новые данные.

fennick 21.05.2012 11:47

Так как в JQuery значение submit-кнопок не отправляются на сервер, есть смысл использовать такой вот интересный код, который добавляет в форму скрытые поля перед отправкой:
var form = $(this);
        $("input[type=submit], input[type=button], button", form).eq(0).each(function(){
            var self= $(this),
            tempElement = $("<input type='hidden'/>");

            // clone the important parts of the button used to submit the form.
            tempElement
            .attr("name", this.name)
            .val(this.id)
            .appendTo(form);
        });


Вобщем, спасибо за идею направления поиска решения! :)


Часовой пояс GMT +3, время: 21:18.