Invoquer la méthode ColdFusion avec un clic dans JQuery

J’ai une page qui affiche une liste de fichiers qu’un utilisateur a téléchargés. C’est comme ça:

 

J’ai un CFC avec une méthode qui a besoin de savoir quel fichier à supprimer. Comme il ne s’agit pas d’un formulaire, je ne sais pas comment transmettre les données au CFC pour qu’il supprime le fichier.

CFC exemple:

   //which filename to delete  //delete the file  // Update SQL table to remove filename reference DELETE FROM UploadsTable WHERE Filename = '#Arguments.Filename#'   // all done so set variable to true  // returns success as JSON to notify Jquery of deletion  

Comment utiliser JQuery Ajax pour transmettre la valeur du nom de fichier au CFC afin qu’il sache lequel supprimer, puis, après avoir reçu le résultat positif, informer l’utilisateur par une alerte?

Je sais comment faire ce qui précède avec un FORM, mais comme ce n’est pas un formulaire, je suis un peu confus. Ceci est aussi loin que mon JQuery est venu:

 $("#FileUploader").on('click', '.DeleteFileUpload', function () { $(this).parent('li').remove(); }); 

Cela supprime uniquement le

  • du DOM. J’ai également besoin d’obtenir le nom du fichier et de le transmettre au CFC en quelque sorte.

    Vous devrez append un appel ajax au CFC:

     $("#FileUploader").on('click', '.DeleteFileUpload', function (event) { event.preventDefault(); $(this).parent('li').remove(); $.ajax('/path/to/your.cfc?method=DeleteUpload&Filename=' + $(this).attr('href')); }); 

    Vous devez modifier le href du lien de suppression pour le chemin du fichier (à titre de référence) et désactiver le clic à l’aide de preventDefault ()

     Delete 

    Si vous n’aimez pas mettre le chemin du fichier dans le href, vous pouvez toujours le mettre dans un atsortingbut de données ou obtenir le href à partir du lien frère.

  • (Nouveau dans le stackoverflow participant, ne peut pas encore commenter.)

    Ne retirez pas simplement l’élément et priez. Enlevez-le immédiatement, faites-le échouer, puis affichez un “Hey, whoopsie!” le message est embarrassant et déroutant.

    Atteignez plutôt l’objective de retour immédiat en indiquant que l’élément est sur le point d’être envoyé à la corbeille, puis éliminez-le lorsqu’il est parti:

     $("#FileUploader").on('click', '.DeleteFileUpload', function (event) { event.preventDefault(); // Do something showing that we're trying a delete... $(this).text('Deleting...') var uri = '/path/to/your.cfc?method=DeleteUpload&Filename=' + encodeURI( $(this).attr('href')) ) $.ajax(uri) .done( function() { $(this).parent('li').remove(); }) .fail( function() { // Let them know we have a goof and let them try again alert('Whoa! That couldn't be deleted!') $(this).text('Deleted...') }) }); 

    Vous voudriez alors envisager d’empêcher l’utilisateur de cliquer deux fois en reliant / reliant le gestionnaire.