Javascript 如何使用按钮和jquery向节点发送删除请求?
我有一个显示“ressource”(也就是mongodb集合中的一个条目)的网页,在该网页上,我希望有一个按钮“delete”,它将向服务器发送一个“delete”请求到正确的路由。 路由器可以工作(因此当我使用外部程序发送删除请求时,条目被删除),但我希望通过链接来实现这一点 显然,在做了一些研究之后,我需要使用ajax函数来实现这一点,如中所示。问题是我无法让它工作(可能是因为我刚刚开始使用jquery),当我点击按钮时,似乎什么都没有发生。但是,如果我尝试一个简单的alert(),它可以工作Javascript 如何使用按钮和jquery向节点发送删除请求?,javascript,jquery,node.js,ajax,http-delete,Javascript,Jquery,Node.js,Ajax,Http Delete,我有一个显示“ressource”(也就是mongodb集合中的一个条目)的网页,在该网页上,我希望有一个按钮“delete”,它将向服务器发送一个“delete”请求到正确的路由。 路由器可以工作(因此当我使用外部程序发送删除请求时,条目被删除),但我希望通过链接来实现这一点 显然,在做了一些研究之后,我需要使用ajax函数来实现这一点,如中所示。问题是我无法让它工作(可能是因为我刚刚开始使用jquery),当我点击按钮时,似乎什么都没有发生。但是,如果我尝试一个简单的alert(),它可以工
('#delete')。在('click',function(){alert('clicked')})代码>
所以
以下是基本的html:
$('#delete')。在('click',function()上{
警报(“点击”);
//这是发送删除请求的代码?
});代码>
故事带模板
删除资源
看看jQuery ajax文档:
$(文档).ready(函数(){
$('table#delTable td a.delete_link')。单击(函数()
{
if(确认(“是否确实要删除此行?”)
{
var id=$(this.parent().parent().attr('id');
变量数据='id='+id;
var parent=$(this.parent().parent();
$.ajax(
{
类型:“POST”,
url:“../scripts/delete_link.php”,
数据:'link='+$(this).attr('data_link')+'、topic_pk='+$(this).attr('data_topic')+'、topic_introduction='+$(this).attr('data_introduction'),
cache:false,
成功:函数()
{
fadeOut('fast',function(){$(this.remove();});
}
});
}
});
});
看看这个。它可以解决你的问题。不要忘记数据表的名称
因此,进行一次Ajax调用。您尝试的不起作用的确切代码是什么?#
用于id,但您的删除按钮具有类。因此,请使用.delete
而不是链接上的#delete
@epascarello,但我的jquery似乎有问题。@Shree是的,我在这里复制了错误的代码。方法:'delete',
?此代码非常有效:)!我删除了“数据”,因为我不需要它。这是完整的js代码:$('#delete').on('click',function(){if(confirm(“您确定要删除这个资源吗?”){$.ajax({url:'/ressources/t/',method:'delete',}.done(function(){console.log('deleted');window location.reload(true);})
@Masivuye Cokile:是的,看看HTTP请求方法:只使用代码的答案并不被认为是好答案,尽管这可以解决问题problm@ComEngTr看来你没有直接回答我的问题。不管怎样,迪米特里的回答帮了我的忙!
$.ajax({
url: '/ressources/t/123',
method: 'DELETE',
data: yourdata
})
.done(function( data ) {
console.log(data);
});
<script type="text/javascript">
$(document).ready(function(){
$('table#delTable td a.delete_link').click(function()
{
if (confirm("Are you sure you want to delete this row?"))
{
var id = $(this).parent().parent().attr('id');
var data = 'id=' + id ;
var parent = $(this).parent().parent();
$.ajax(
{
type: "POST",
url: '../scripts/delete_link.php',
data: 'link=' + $(this).attr('data_link') + '&topic_pk=' + $(this).attr('data_topic') + '&topic_introduction=' + $(this).attr('data_introduction'),
cache: false,
success: function()
{
parent.fadeOut('fast', function() {$(this).remove();});
}
});
}
});
});
</script> just look at this. it can solution your problem. Dont Forget your datatable's name