dazle
@dazle
Хороший электрик, но в душе программист

При нажатии на кнопку выполнялась загрузка, чтобы быть уверенным что кнопку нажали и скрипт выполнился. Как это сделать?

Cтолкнулся с проблемой: cписок пользователей при нажатии на + к рейтингу не всегда сразу выполняется действие (т.е прибавка к рейтингу, у меня автоматом обновляется рейтинг через Ajax) это иногда происходит из за медленного соединения с бд и пользователь может подумать что он не нажал и будет шелкать дальше тратя свои голоса. Я думаю могло быть решением этой проблемы всплывающее окно загрузки по истечению которой скрипт выполнит все действия и пользователь увидит обновленный рейтинг. Подскажите как и куда мне добавить и что добавить) с джава скрипт тока со своим кодом знаком (понимаю что он делает).
$(function (){
$(document).on('click', '.pluspol',function (){

var dd = $(this).attr('data-pluspol');
var box = $(this).parent().find('.summaw');
$.ajax({
url: 'shablon/plususer.php',
type: 'POST',
data: {"dd":dd},
success: function(html){
box.html(html); 
}
});
});
});

Возможны какието другие решения на Php в файле plususer.php, там меняется рейтинг и берется новый с базы данных. Возможно там можно что то сделать. Если есть решения на PHP тоже пишите.
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Перед отправкой запроса ствишь disabled на кнопку. После получения ответа - разблокируешь

$(function (){
	$(document).on('click', '.pluspol',function (){
		const btn = this;
		//disable - prevent clicks
		btn.disabled = true; 
		var dd = $(this).attr('data-pluspol');
		var box = $(this).parent().find('.summaw');
		$.ajax({
		url: 'shablon/plususer.php',
			type: 'POST',
			data: {"dd":dd},
			success: function(html){
				// enable 
				btn.disabled = enable; 
				box.html(html); 
			}
		});
	});
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект