У меня недавно была похожая ситуация, когда я иногда получал двойной щелчок «отказов». Вот два способа, которыми я справился с этим:
1) Просто отключите кнопку, отправьте данные AJAX на PHP и восстановите кнопку в случае успеха
$("#save_button").click(function (e) {
e.preventDefault();
$(this).attr("disabled", true);
var settings = $('form').serialize();
console.log("settings are ", settings);
$.post("data/ajax.php", settings, function (data) {
data = JSON.parse(data);
console.log("data back from save is ", data);
$("#save_button").removeAttr("disabled");
})
});
2) создайте Функция «nobounce» (в основном это то же самое, но с таймером. Использовать ее немного проще, поскольку она требует установки класса «nobounce» для любой кнопки, которую вы хотите отключить, хотя, как и для таймера, не так точно включить кнопку, когда сообщение закончено.
$('.nobounce').click(function () {
$(this).attr("disabled", true);
setTimeout(function () {
$('.nobounce').removeAttr("disabled");
}, 3000);
});
Это оба jquery метода - сохранение формы на странице. Из вашего описания кажется, что вы делаете отправьте форму через PHP (пожалуйста, если это не тот ответ, который вам нужен, укажите код, который вы используете, чтобы это было более понятно!). Если вы отправляете через PHP, то некоторые комментарии исходный вопрос чрезвычайно актуален.
Надеюсь, это поможет - снова, если нет, добавьте код, и вы сможете получить гораздо более прямую помощь.