单击JQuery调用ColdFusion方法

我有一个页面,显示用户上传的文件列表。 就像这样:

 

我有一个CFC,其方法需要知道要删除哪个文件。 因为这不是Form,我不知道如何将数据传递给CFC以使其删除文件。

CFC示例:

   //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  

如何使用JQuery Ajax将Filename的值传递给CFC,以便它知道要删除哪一个,然后在收到成功结果后通知用户有警报?

我知道如何使用FORM进行上述操作,但因为这不是一种forms我有点困惑。 这就是我的JQuery来了:

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

这只会从DOM中删除

  • 。 我还需要获取Filename并以某种方式将其传递给CFC。

    您需要向CFC添加ajax调用:

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

    您需要将删除链接的href更改为文件路径(作为参考)并使用preventDefault()禁用单击

     Delete 

    如果您不想将文件路径放在href中,则可以始终将其放在数据属性中,或者从兄弟链接中获取href。

    (参与stackoverflow的新function,尚无法评论。)

    不要只是删除元素并祈祷。 立即删除它,让它失败,然后显示“嘿,哎呀!” 消息令人尴尬和困惑。

    相反,通过显示项目正在前往垃圾箱的路上来满足即时反馈目标,然后在它消失时将其杀死:

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

    然后,您需要考虑通过取消/重新绑定处理程序来防止用户单击两次。