2010-08-17 6 views
0

Hé les gars. Je suis un peu nouveau à jQuery et javascript en général. Ce que j'ai est un CMS que je suis en train de mettre à niveau. Ce faisant, j'ai commencé une option pour supprimer plusieurs catégories à la fois via des cases à cocher, qui est traitée via jquery/ajax. En supprimant les enregistrements individuellement, je pouvais supprimer la ligne de la table une fois supprimée, mais maintenant avec plusieurs enregistrements et cases à cocher, je ne suis pas sûr de savoir comment gérer cela. Si elle aide à tous, voilà ce que je travaille avec (excuse si elle est en désordre, je ne suis pas trop familier avec JS ou jQuery en général) ...jQuery + PHP: Suppression de lignes d'une table à partir de plusieurs ID

// Process deleting multiple categories 
$("#delete_selected").click(function() { 

    $("#delete_loading").fadeIn("slow"); 
    var bool = confirm('Are you sure you want to delete the selected categories? This action cannot be undone.'); 

    if (bool == true) 
    { 
    var formDataString = $("#categoriesForm").serialize(); 

    $.ajax({ 
    type: "POST", 
    url: domain + "/admin/categories/delete_category/", 
    data: formDataString, 
    cache: false, 
    dataType: "html", 
    success: function() { 
    $("#delete_loading").fadeOut("slow"); 
    $('tr#' + id).fadeOut("slow"); 
    $('tr#' + id + ' td').fadeOut("slow"); 
    }, 
    error: function() { 
    $("#delete_loading").fadeOut("slow"); 
    $('#error').fadeIn("slow"); 
    } 
    }); 
    } 
    else { $('#error').show(); } 
    return false; 
}); 

Merci pour toute aide ou pensées que vous pouvez offrir . Comme vous pouvez le voir, dans l'ancien code, j'ai juste effacé les lignes de la table après le traitement, mais je n'ai aucune idée comment retourner l'identifiant pour me cacher de PHP (j'utilise aussi le framework Kohana).

+0

Une page de démonstration sera utile ici. – Wayne

Répondre

0

vous pouvez simplement obtenir les éléments vérifiés à l'intérieur de la table et les supprimer comme

suivant
$('#tableId :checked').each(function(i, item){ 
    var $row = $(item).parent('tr:first'); 
    $row.fadeOut("slow"); 
    $('td', row).fadeOut("slow"); //i'm not sure why you need to hide tds after hiding the hole row 
}); 
0

Qu'est-ce que #categoriesForm est exactement? Un champ de saisie?

Je vois que vous utilisez pour sérialiser, et si je ne me souviens pas mal, jquery devrait avoir une fonction pour le transformer en un tableau. Puis, avec un simple .each(), vous pouvez retirer du dom les lignes avec .parent ('tr: first'); comme Barakad l'a suggéré.

En note, je ne comprends pas pourquoi votre appel ajax a dataType: "html" ... qu'est-ce que vous attendez comme une valeur de retour? Habituellement, ce genre de chose s'attend à retourner une valeur booléenne (true pour le succès, false en cas d'erreur) ou un message json avec tous les détails. Html dataType me fait penser que vous mettez à jour la page DOM avec la réponse ajax , ai-je tort?

Questions connexes