Есть такой кода в success ajax:
var timer = setInterval("check()", 1000);
function check() {
var sid = "<?= $getSID ?>";
var uid = "<?= $getUID ?>";
var id = "<?= $getID ?>";
var info = "checker";
$.ajax({
type: 'POST',
cache: false,
dataType: 'json',
url: 'check_status_trade',
data: {
"id":id,
"sid":sid,
"uid":uid,
"info":info
},
success: function(data) {
if (data.pokypatel == '1' && data.prodavec == '1')
{
clearInterval(timer);
$(document).bind("keydown", disableF5);
$(document).on("keydown", disableF5);
$('#i').trigger('click');
succefullSwap(); // <------ВНИМАНИЕ СЮДА
setTimeout(function(){
window.location = "/";
}, 5000);
}
},
error: function(data) { // Данные не отправлены
}
});
}
Функция succefullSwap тоже содержит ajax запрос. Вот он:
function succefullSwap() {
var sid = "<?= $getSID ?>";
var uid = "<?= $getUID ?>";
var id = "<?= $getID ?>";
var type = "<?= $getTYPE ?>";
$.ajax({
type: 'POST',
cache: false,
dataType: 'json',
url: 'check_status_trade',
data: {
"id":id,
"sid":sid,
"uid":uid,
"type":type,
"success":"success"
},
success: function(data) {
},
error: function(data) {
}
});
}
И все идет хорошо, все отправляется и исполняется, но когда данные приходят в check_status_trade
, то результаты, почему то, удваиваются..вот код из check_status_trade
:
if ($_POST['success'] == 'success')
{
$id = $_POST['id'];
$sid = $_POST['sid'];
$uid = $_POST['uid'];
$type = $_POST['type'];
$bds = new mysqli("localhost","имя","пас","база");
$bds->query("UPDATE check_trade SET status_trade=1 WHERE check_id='$id'");
if ($type == 'item')
{
//Получаем цену за лот с комиссией
$query = $bds->query("SELECT cost FROM item_list WHERE unique_id='$id' AND user_sender_id='$sid' AND type='item'");
$helper = mysqli_fetch_array($query);
$getCostForLot = $helper[0];
$bds->query("UPDATE users SET balance=balance-'$getCostForLot' WHERE vk_id='$uid'");
}
В результате, вместо положенного вычитания 1 раз, он вычитает дважды и пишет это значение в бд. Вроде ajax останавливаю перед вызовом другой ajax функции..или не в этом причина ?
Я не знаю, где находится первый фрагмент кода, который Вы привели, но если остальной код такой же как
$(document).bind("keydown", disableF5);
$(document).on("keydown", disableF5);
(эти две строчки делают одно и то же, то есть добавляют один и тот же обработчик дважды), то не приходится удивляться, что какие-то действия выполняются два раза.
var timer = setInterval("check()", 1000);
function check() {
clearInterval(timer); // !!!
var sid = "<?= $getSID ?>";
var uid = "<?= $getUID ?>";
var id = "<?= $getID ?>";
var info = "checker";
$.ajax({
type: 'POST',
cache: false,
dataType: 'json',
url: 'check_status_trade',
data: {
"id":id,
"sid":sid,
"uid":uid,
"info":info
},
success: function(data) {
if (data.pokypatel == '1' && data.prodavec == '1')
{
// clearInterval(timer);
...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Доброго времени суток всемСтолкнулся вот с такой проблемой
Подключил плагин ACF, и создал свою новую страницу sendphp, при переходе по ссылке на страницу в разделе Страницы всё корректно добавляется, но по ссылке...
Ребят помогите словить значение ссылки http://tme/mybot?start=123
как можно вывести сайдбары на все страницы в wordpress? Шаблон данную функцию нативно не поддерживает