Много форм, но отправьте только ту, которая изменяется - PullRequest
3 голосов
/ 09 мая 2011

То, что я сделал до сих пор

Я создал веб-сайт с использованием CGI::Application и HTML::Templates в Perl, который выглядит как this .

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

Идея нижней формы состоит в том, что пользователь должен иметь возможность вносить изменения в существующий набор данных, где верхняя форма создает новый набор данных.

Верхняя форма работаети использует Ajax для поиска в базе данных недопустимых значений, которые пользователь не может ввести.

Проблема

Для каждого набора данных будет кнопка Сохранить.Как видно на скриншоте.

Как передать только набор данных, соответствующий кнопке Сохранить, нажатой с помощью Ajax?

Я могу сделать это с помощью чистого JQuery и со скрытым input вот так

<form action="" method="post">
   <input name="anchor" value="34" type="hidden">
   <input name="title" type="text" />

   ...

   <button  type="submit">Save</button>
</form>

, но без Ajax я не могу сначала проверить недопустимые значения в базе данных.

Как будет выглядеть код Ajax, который будет передавать только набор данных дляформа, к которой принадлежит кнопка сохранения?

1 Ответ

2 голосов
/ 09 мая 2011

Вы можете использовать метод .serialize():

$('form').submit(function() {
    $.ajax({
        url: this.action,
        type: this.method,
        data: $(this).serialize(),
        success: function(result) {
            // the AJAX request succeeded => do something
            // with the results returned by the server
        }
    });
    return false;
});

Это подпишется на событие отправки всех форм (возможно, вы можете настроить селектор так, чтобы он ограничивался только формами, содержащимися в таблице), а при отправке отменяет действие по умолчанию и отправляет запрос AJAX путем сериализации всех поля формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...