Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用.each使用AJAX按id删除所有项目_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 使用.each使用AJAX按id删除所有项目

Javascript 使用.each使用AJAX按id删除所有项目,javascript,jquery,ajax,Javascript,Jquery,Ajax,甚至可以使用ajax从服务器批量删除项目吗?我在这里完全不知所措 我试图运行each函数来提取服务器上每个项目的url id,然后将其插入ajax删除类型调用。这对我来说是有道理的,但我还是一个编程新手,我觉得我可能还有很长的路要走 对这方面的任何深入了解都将是巨大的帮助。谢谢 $('delete friends')。在('click',function()上{ $.ajax({ 键入:“GET”, 网址:'http://rest.learncode.academy/api/johnbob/f

甚至可以使用ajax从服务器批量删除项目吗?我在这里完全不知所措

我试图运行each函数来提取服务器上每个项目的url id,然后将其插入ajax删除类型调用。这对我来说是有道理的,但我还是一个编程新手,我觉得我可能还有很长的路要走

对这方面的任何深入了解都将是巨大的帮助。谢谢

$('delete friends')。在('click',function()上{
$.ajax({
键入:“GET”,
网址:'http://rest.learncode.academy/api/johnbob/friends',
成功:功能(朋友){
var scratchFriend=$。每个(朋友,函数(i,朋友){
var-friendID=(friend.id);
console.log(friendID);
$ajax({
键入:“删除”,
网址:'http://rest.learncode.academy/api/johnbob/friends/'
friendID','
成功:函数(){
log('Friend Deleted Successfully!');
}
});
});
}
});
});
#删除好友{
位置:绝对位置;
排名前10%;
左:70%;
字体大小:20px;
边界半径:10px;
}

删除所有的朋友?
做朋友
姓名:

年龄:

加入我们吧,朋友
我认为最好将一组好友ID发送到后端-您只需稍微调整一下后端:

$('#delete-friends').on('click', function() {
  $.ajax({
    type: 'GET',
    url: 'http://rest.learncode.academy/api/johnbob/friends',
    success: function(friends) {
      if (!friends) {
          return;
      }

      var friendIds = [];

      $.each(friends, function(i, friend) {
        friendIds.push(friend.id);   
      });

      $ajax({
          type: 'POST',
          url: 'http://rest.learncode.academy/api/johnbob/friends/'
          data: {
            friendIds: friendIds
          },
          success: function() {
            console.log('Friend Deleted Successfully!');
          }
      });

    }
  });
});
或者更好—创建一个删除方法,该方法将接收用户并删除其所有好友:

    $('#delete-friends').on('click', function() {
      $.ajax({
        type: 'POST',
        url: 'http://rest.learncode.academy/api/delete/friends',
        data: {
            user: 'johnbob'
        },
        success: function(data) {
          if (!data) {
              return;
          }

          console.log(data);
        }
      });
    });
但我猜您使用的是API,因此无法真正更改后端

从我在learncode的文档中看到的内容来看,你可以在url中添加朋友的id来删除它。这应该可以做到:

        // -- SAME CODE FROM ANSWER --
        $ajax({
          type: 'DELETE',
          url: 'http://rest.learncode.academy/api/johnbob/friends/' + friendID
          success: function() {
            console.log('Friend Deleted Successfully!');
          }
        });
        // -- SAME CODE FROM ANSWER --

通常,服务器具有批量删除功能,您可以在其中传递所有要删除的ID。一个接一个地删除它们会带来一点流量,因为对于发送给服务器的每个id/请求,都会发送关于请求的元信息,这是多余的。您可以通过发送所有ID将此请求减少为一个。

尝试
url:'http://rest.learncode.academy/api/johnbob/friends/“+friendID,
在您的
DELETE
Ajax
请求中。您还可以在一个删除请求中传递多个参数。参考这篇文章,操作后端并不是一个真正的选项。我必须通过ajax调用来完成。