У меня есть простая страница корзины, на которой отображаются элементы, которые находятся в чьей-то корзине, и которая отображается через ASP, находясь за моей таблицей. У меня есть столбец, в котором пользователь может удалить запись. У меня ASP работает правильно, теперь я пытаюсь добавить к нему AJAX. У меня такой код:
$("img.delete").click(function() {
var id = $('#id').attr('value');
$.ajax({
type: "POST",
url: "delete.php",
data: "id = "+ id,
success: function(){
$('tr.selector').remove();
$('div.success').fadeIn();
}
});
return false;
});
Дело в том, как я буду настраивать его для каждого значения, потому что, если я использую указанное выше, я нажимаю одно, и все они уйдут. Я не понимаю, как настроить его для работы с многочисленными строками.

Вам нужно выбрать только строку элемента для удаления. Я не уверен, как вы его настроили, но если элемент изображения находится внутри строки, вы можете использовать:
$("img.delete").click(function() {
var row = $(this).parents('tr:first');
...
success: function(){
$(row).remove(); //Remove the row containing the image element
...
}
...
});
да, возьмите первую команду в цепочке DOM. Я использую: сначала на всякий случай, если он вложен в другую таблицу, а также это условие остановки, поэтому он не будет искать дальше после нахождения первого tr.
Если вам нужен атрибут html id, то это сработает. Почему бы тебе не попробовать?
Обновлено: это может быть просто row.attr ('id'); Это выскользнуло из моей головы, какое-то время я не использовал jQuery :)
Проще всего присоединить $variable (id) к классу каждого элемента, например
// $("img.delete_<?php echo $id;?>").click(function()
в этом случае он отображается как img.delete_1, img.delete_2 и т. д. для каждого элемента,
затем примените то же самое к классу элемента цикла
<td class = "delete_<?php echo $id;?>"></td>
надеюсь, это имеет смысл
$("img.delete_<?php echo $id;?>").click(function() {
var id = $('#id').attr('value');
$.ajax({
type: "POST",
url: "delete.php",
data: "id = "+ id,
success: function(){
$('tr.selector').remove();
$('div.success').fadeIn();
}
});
return false;
});
Этот код отлично работал! Спасибо. Говорит ли tr: сначала, когда вы нажимаете img, берете родительский tr таблицы?