2014-11-01 5 views
0

У меня есть таблица на сайте с несколькими строками данных. Каждая строка данных может быть отредактирована самой строкой, а в конце каждой строки - кнопка сохранения.JQuery Несколько независимых вызовов Ajax

Следовательно, если у меня есть 10 строк, у меня будет 10 кнопок сохранения.

Я хочу, чтобы каждая кнопка сохранения сохраняла соответствующие данные строк в базе данных с помощью вызова ajax, и после завершения вызова ajax текст кнопки изменяется на «сохраненный». Дело в том, что пользователь может последовательно нажимать на несколько кнопок сохранения, не дожидаясь завершения предыдущего сохранения.

Следовательно, мне нужен вызов ajax, который уникален для каждой кнопки, однако мне трудно найти простой способ сделать это. Может ли кто-нибудь помочь с кодом скелета ajax? Предоставляю ли я вызов ajax, включая идентификатор кнопки и функцию ajax complete, I для идентификатора кнопки в возвратном сообщении ajax?

Приветствия Kevin

+0

Родитель каждой кнопки будет той же самой строкой, где лежат ваши данные. Поэтому вы можете просто использовать метод find() для поиска всех данных и кнопки. –

ответ

0

Представьте у вас есть переменная, которая знает идентичность кнопки, которая была нажата. Позволяет называть его button.

var button = // some button; 

при вызове вашего AJAX вызова с помощью логики, такие как следующие ...

$.ajax({ 
    // Other parameters 
    success: function(data) { 
     $(button).text("saved"); 
    } 
}); 

экземпляр переменной button будет по-прежнему находиться в области видимости, когда success обратного вызова происходит через JavaScript закрытия. Таким образом, контекст обратного вызова все еще известен экземпляром этого конкретного обратного вызова.

Конкретно jsFiddle, который отображает решение с помощью таблицы и кнопок. Вместо вызова службы Ajax я использовал функцию setTimeout(), чтобы просто задержать несколько секунд, но принцип тот же.

+1

Точно ответ, который я искал! $ (это) больше не работал в обратном вызове. Но это сработало, если я ранее назначал $ (this) переменной и затем ссылался на эту переменную в обратном вызове. – Kevin

Смежные вопросы