2008-12-17 11 views
2

J'ai une page de panier simple qui affiche les éléments qui sont dans le chariot de quelqu'un, et de l'avoir affiché via un ASP depuis ma table. J'ai une colonne où un utilisateur peut supprimer une entrée. J'ai l'ASP fonctionnant correctement, maintenant j'essaye d'ajouter AJAX dans lui. J'ai le code suivant:AJAX delete - en utilisant jQuery

$("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; 
}); 

La chose est, comment wouild-je faire pour sa mise en place pour chaque valeur, parce que si je l'utilise ci-dessus, je clique sur un et ils vont tous aller. Je suis confus sur la façon de le configurer pour travailler avec de nombreuses lignes.

Répondre

4

Vous devez sélectionner uniquement la ligne de l'élément à supprimer. Je ne sais pas comment vous avez mis en place, mais si l'élément d'image est à l'intérieur de la ligne que vous pouvez utiliser:

$("img.delete").click(function() { 
     var row = $(this).parents('tr:first'); 

     ... 

     success: function(){ 
      $(row).remove(); //Remove the row containing the image element 
      ... 
     } 

     ... 
    }); 
+0

Ce code a bien fonctionné! Je vous remercie. Est-ce que le tr: premier dicton lorsque vous cliquez sur le img, prenez le parent tr de la table? – Coughlin

+0

oui, prenez la première place dans la chaîne DOM. J'utilise: d'abord juste au cas où il est imbriqué dans une autre table, et aussi c'est une condition d'arrêt donc il ne cherchera pas plus loin après avoir trouvé le premier tr. –

0

Si elle est l'id attribut HTML que vous voulez, alors cela pourrait fonctionner. Pourquoi ne l'essayez-vous pas?

EDIT: Il pourrait être juste row.attr ('id'); Il a glissé de mon esprit, havn't ben en utilisant jQuery pour quelque temps :)

0

La chose simple est d'attacher un $variable (id) à la classe de chaque élément, par exemple dans ce cas

// $("img.delete_<?php echo $id;?>").click(function() 

il apparaît comme img.delete_1, ect img.delete_2 pour chaque élément,

appliquent alors la même à la classe de l'élément de mise en boucle

<td class="delete_<?php echo $id;?>"></td> 

espoir il est logique

$("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; 
}); 
Questions connexes