Настройка следующая:
каждая строка в таблице описывает элемент из базы данных в соответствии с определенной формой. Каждый элемент <td>
представляет значение элемента формы. Первый элемент <td>
в каждой строке представляет собой кнопку, которая при щелчке должна отправить на сервер item_id
, удерживаемый в его (кнопочной) строке, и после того, как сервер вернет успех, строка, содержащая отправленный идентификатор, должен быть удален.
Что на самом деле происходит, так это то, что после того, как я удалю какую-то строку, позже в функции onclick в других строках идентификатор будет идентификатором удаленной строки. Например, если у меня есть:
<tr id=1></tr>
<tr id=2></tr>
Код Jquery, используемый для удаления строк:
(itemId изменяется в цикле ...)
var num = eval($("#oldnum").val()) + 2;
for (var i=2; i < num; i++ ){
// var remElem = $('#items tbody tr:nth-child('+i+') img[name="remitem"]');
var remElem = $('#remitem'+(i-2));
var row = $('#items tbody tr:nth-child('+i+')');
var itemId = $(row).attr('id').split("_");
//id of a row is item_actualId, we want the actualId
itemId = itemId[1];
$(remElem).click(function(){
removeExistingItem(itemId);
});
}
...
function removeExistingItem(itemId){
var answer = confirm("האם ברצונך למחוק את הפריט?");
if (!answer){
return;
}
var path = window.location.pathname;
$.ajax({
url: "/po/removeitem", dataType: "json",
data: {id: itemId, format: "json"}, success: function(){
$('#items tr[id="item_'+itemId+'"]').remove();
}
});
}
Любая помощь приветствуется ...