 
			
				01.04.2020, 00:24
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.04.2020 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Нужна помощь по ВК АПИ
			 
			
		
		
		
		Друзья, в общем, я новичок, сильно не матюкайтесь)) 
Пишу скрипт для управления подписчиками сообщества и запнулся на этапе удаления подписчиков из группы. Суть в том, что нужно удалять конкретного юзера по нажатию кнопки, но почему-то удаляется рандомный юзер... Что делаю не так?
 
Код:
 
<!DOCTYPE html>
<html>
<head>
	<title></title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
Кол-во подписчиков: <input type="text" id="load100"  value="20" size="10px">
<p>Сдвиг: <input type="text" id="offset"  value="0" size="10px"></p>
<button id="loadAll">Загрузить подписчиков</button>
<p><button id="loadBan">Выбрать заблокированных</button></p>
<!-- <p id="schet">'Показаны подписчики с' +OffMin+ 'по' +OffMax+;</p>
 -->
<ul></ul>
<script src="jquery.min.js"></script>
<script src="vk.js"></script>
<script>
$('#loadAll').on('click', loadFriends);
$('#loadBan').on('click', loadBanFriends);
var PerLoad100 = document.getElementById('load100');
var OffSet = document.getElementById('offset');
// 	var OffMin = +OffSet.value +1;
// 	var OffMax = PerLoad100.value
// var Schet = document.getElementById('schet');
// schet.innerHTML+= "'Показаны подписчики с' +OffMin+ 'по' +OffMax+;"
// function RemoveUser() {
// 	sendRequest('groups.removeUser', { group_id: 129549953, user_id: g.id}, function (data) {
// 		drawBanFriends(data);
// 		console.log(data);
// 	});
// }
// Вывод удаленных/забанненых
function drawBanFriends(items){
    var html = '';
    for (var i = 0; i < items.length; i++) {
    	 g = items[i];
    	var online = g.online ? '<span style="color:green">Online</span>' : '<span style="color:#ff0000">Offline</span>';
    	
        var deactivate = g.deactivated ? g.deactivated : '';
        if (deactivate == 'deleted') {
        	deactivate = html +=
    	'<li>'
    	 +'<a target = "_blank" href="http://vk.com/id'+ g.id +'">'
    	 +'<img src = "'+g.photo_100+'"/>'
    	 +'<div>'
    	 +'<h4>'+ g.first_name +' '+ g.last_name +'</h4>'
    	 +'<p>'+online+'</p>'
    	  +'<p>Пользователь удалил страницу</p>'
    	 +'<button> Написать </button>'
    	 + '</div>'
    	+'</a>'
    	+'</li>';
        } else if (deactivate == 'banned') {
        	deactivate = html +=
    	'<li>'
    	 +'<a target = "_blank" href="http://vk.com/id'+ g.id +'">'
    	 +'<img src = "'+g.photo_100+'"/>'
    	 +'<div>'
    	 +'<h4>'+ g.first_name +' '+ g.last_name +'</h4>'
    	 +'<p>'+online+'</p>'
    	  +'<p>Пользователь заблокирован</p>'
    	 
    	 + '</div>'
    	+'</a>'
    	+'<button id="del1"> Удалить2 </button>'
    	+'</li>';
        } else {
        	deactivate = '';
        }
    	
   
}
    $('ul').html(html); 
    $('#del1').on('click', removeUser);
   
}
// Вывод списка подписчиков на страницу
function drawFriends(items){
    var html = '';
    for (var i = 0; i < items.length; i++) {
    	var g = items[i];
    	var online = g.online ? '<span style="color:green">Online</span>' : '<span style="color:#ff0000">Offline</span>';
        var deactivate = g.deactivated ? g.deactivated : '';
        if (deactivate == 'deleted') {
        	deactivate = 'Страница удалена пользователем';
        } else if (deactivate == 'banned'){
        	deactivate = 'Страница заблокирована';
        } else {
        	deactivate = '';
        }
    	html +=
    	'<li>'+ 
    	 '<a target = "_blank" href="http://vk.com/id'+ g.id +'">'
    	 +'<img src = "'+g.photo_100+'"/>'
    	 +'<div>'
    	 +'<h4>'+ g.first_name +' '+ g.last_name +'</h4>'
    	 +'<p>'+online+'</p>'
    	  +'<p>'+deactivate+'</p>'
    	 +'<button> Написать </button>'
    	 + '</div>'
    	+'</a>'
    	+'</li>';
    }
   
    $('ul').html(html);
}
</script>
</body>
</html>
Функции:
 
// Генерация URL запроса
function getUrl(method,params) {
	if (!method) throw new Error ('Вы не указали метод!');
	params = params || {};
	params['access_token'] = 'тут токен';
	return 'https://api.vk.com/method/'+ method +'?' + $.param(params) + '&v=5.52';
}
 // отправка запроса
function sendRequest(method,params, func){
		$.ajax({
		url: getUrl(method, params),
		method: 'GET',
		dataType: 'JSONP',
		success: func
	});
}
// Вывод всех юзеров
function loadFriends() {
	sendRequest('groups.getMembers', {group_id: 148888375, count: PerLoad100.value, offset: OffSet.value, fields: 'photo_100,online,deactivated'}, function (data) {
		drawFriends(data.response.items, data.response.count);
		console.log(data);
	});
}
// Вывод забаненых
function loadBanFriends() {
	
	sendRequest('groups.getMembers', { group_id: 148888375, count: PerLoad100.value, offset: OffSet.value,  fields: 'photo_100,online,deactivated'}, function (data) {
		drawBanFriends(data.response.items);
		console.log(data);
	});
}
// Удаление юзера
function removeUser(items) {
	
	sendRequest('groups.removeUser', { group_id: 148888375, user_id: g.id}, function (data) {
		drawBanFriends(data.response);
		console.log(g.id);
	});
}
Мне кажется, что проблема именно в removeUser(items), но не могу понять какая(((  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.04.2020, 01:43
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Desantnik3, 
 строка 102 (html) сработает только для первой кнопки, id это уникальный идентификатор. 
строка 49 (js) откуда данные user_id: g.id? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.04.2020, 02:01
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.04.2020 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		Desantnik3, 
 строка 102 (html) сработает только для первой кнопки, id это уникальный идентификатор. 
строка 49 (js) откуда данные user_id: g.id?
	 | 
 
	
 
 По 102 строке, спасибо!)) Действительно работает только первая кнопка.
 
по строке 49: переменная "g" вот отсюда: 
 
function drawBanFriends(items){
    var html = '';
    for (var i = 0; i < items.length; i++) {
         g = items[i];
а id получает уже непосредственно из АПИ, насколько я понимаю  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.04.2020, 02:08
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.04.2020 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 так, как я понял, функция удаляет только последний id из цикла... А как сделать, чтоб она могла удалять любой? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.04.2020, 02:24
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Desantnik3, 
 попробуйте так
 
// Вывод удаленных/забанненых
function drawBanFriends(items){
    var html = '';
    items.forEach(function(g) {
	var online = g.online ? '<span style="color:green">Online</span>' : '<span style="color:#ff0000">Offline</span>';
        var deactivate = g.deactivated ? g.deactivated : '';
        if (deactivate == 'deleted') {
        	deactivate = html +=
    	'<li>'
    	 +'<a target = "_blank" href="http://vk.com/id'+ g.id +'">'
    	 +'<img src = "'+g.photo_100+'"/>'
    	 +'<div>'
    	 +'<h4>'+ g.first_name +' '+ g.last_name +'</h4>'
    	 +'<p>'+online+'</p>'
    	  +'<p>Пользователь удалил страницу</p>'
    	 +'<button> Написать </button>'
    	 + '</div>'
    	+'</a>'
    	+'</li>';
        } else if (deactivate == 'banned') {
        	deactivate = html +=
    	'<li>'
    	 +'<a target = "_blank" href="http://vk.com/id'+ g.id +'">'
    	 +'<img src = "'+g.photo_100+'"/>'
    	 +'<div>'
    	 +'<h4>'+ g.first_name +' '+ g.last_name +'</h4>'
    	 +'<p>'+online+'</p>'
    	  +'<p>Пользователь заблокирован</p>'
    	 + '</div>'
    	+'</a>'
    	+'<button class="del" data-id="'+g.id+'"> Удалить2 </button>'
    	+'</li>';
        } else {
        	deactivate = '';
        }
})
    $('ul').html(html);
    $('.del').on('click', function() { 	console.log(this.dataset.id);
    sendRequest('groups.removeUser', { group_id: 148888375, user_id: this.dataset.id}, function (data) {
		drawBanFriends(data.response);
	});
   });
}
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.04.2020, 02:43
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.04.2020 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		Desantnik3, 
 попробуйте так 
// Вывод удаленных/забанненых
function drawBanFriends(items){
    var html = '';
    items.forEach(function(g) {
	var online = g.online ? '<span style="color:green">Online</span>' : '<span style="color:#ff0000">Offline</span>';
        var deactivate = g.deactivated ? g.deactivated : '';
        if (deactivate == 'deleted') {
        	deactivate = html +=
    	'<li>'
    	 +'<a target = "_blank" href="http://vk.com/id'+ g.id +'">'
    	 +'<img src = "'+g.photo_100+'"/>'
    	 +'<div>'
    	 +'<h4>'+ g.first_name +' '+ g.last_name +'</h4>'
    	 +'<p>'+online+'</p>'
    	  +'<p>Пользователь удалил страницу</p>'
    	 +'<button> Написать </button>'
    	 + '</div>'
    	+'</a>'
    	+'</li>';
        } else if (deactivate == 'banned') {
        	deactivate = html +=
    	'<li>'
    	 +'<a target = "_blank" href="http://vk.com/id'+ g.id +'">'
    	 +'<img src = "'+g.photo_100+'"/>'
    	 +'<div>'
    	 +'<h4>'+ g.first_name +' '+ g.last_name +'</h4>'
    	 +'<p>'+online+'</p>'
    	  +'<p>Пользователь заблокирован</p>'
    	 + '</div>'
    	+'</a>'
    	+'<button class="del" data-id="'+g.id+'"> Удалить2 </button>'
    	+'</li>';
        } else {
        	deactivate = '';
        }
})
    $('ul').html(html);
    $('.del').on('click', function() { 	console.log(this.dataset.id);
    sendRequest('groups.removeUser', { group_id: 148888375, user_id: this.dataset.id}, function (data) {
		drawBanFriends(data.response);
	});
   });
}
	 | 
 
	
 
 index.html:54 Uncaught TypeError: items.forEach is not a function 
    at drawBanFriends (index.html:54) 
    at Object.success (index.html:90) 
    at i (jquery.min.js:2) 
    at Object.fireWith [as resolveWith] (jquery.min.js:2) 
    at A (jquery.min.js:4) 
    at HTMLScriptElement.c (jquery.min.js:4) 
    at HTMLScriptElement.dispatch (jquery.min.js:3)  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.04.2020, 08:28
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Desantnik3, 
 а так? 
[...items].forEach 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.04.2020, 08:50
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.04.2020 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		Desantnik3, 
 а так? 
[...items].forEach
	 | 
 
	
 
 Так выдает это: 
index.html:54 Uncaught TypeError: number 1 is not iterable (cannot read property Symbol(Symbol.iterator))  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.04.2020, 09:28
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Desantnik3, 
 замените строки  
 +'<button id="del1"> Удалить2 </button>' 
на 
 
+'<button class="del" data-id="'+g.id+'"> Удалить2 </button>'
 
и $('#del1').on('click', removeUser); 
на
 
$('.del').on('click', function() { 	console.log(this.dataset.id);
    sendRequest('groups.removeUser', { group_id: 148888375, user_id: this.dataset.id}, function (data) {
		drawBanFriends(data.response);
	});
   });
в изначальном коде  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.04.2020, 13:03
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.04.2020 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		Desantnik3, 
 замените строки  
 +'<button id="del1"> Удалить2 </button>' 
на  
+'<button class="del" data-id="'+g.id+'"> Удалить2 </button>'
  
и $('#del1').on('click', removeUser); 
на 
$('.del').on('click', function() { 	console.log(this.dataset.id);
    sendRequest('groups.removeUser', { group_id: 148888375, user_id: this.dataset.id}, function (data) {
		drawBanFriends(data.response);
	});
   });
 
в изначальном коде
	 | 
 
	
 
 Отлично! Работает, спасибо!!!  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |