Мне нужно дважды нажать кнопку «Пуск», чтобы заставить работать функцию ответа моего Ajax.Я хочу, чтобы он работал в один клик.
Это для игрового веб-сайта, который устанавливает новый куки-файл, когда игра кликается через PHP Ajax, а когда куки-файл установлен, данные об успехе отправляются и открывается новое окно.с cookie данные открываются.
Javascript:
$(document).on('click', '#startPlay_btn', function(e)
{
e.preventDefault();
$.ajax(
{
type: 'post',
url: 'ajax.php',
data: {'csrf_token': $('#csrf_token').val(), 'flag': 1},
dataType: 'json',
success: function(data)
{
if(data.response==1)
window.open('play.php?gameID='+data.gameID, '_self');
}
});
});
ajax.php:
switch ($_POST['flag'])
{
case 1:
//generate game ID and CSRF
$c_value = $base->recursive_generator('b_gameID', 1, 'balances');
if( !isset($_COOKIE['gameID']) )
{
setcookie('gameID', $c_value, time() + (86400 * 30), "/");
$_COOKIE['gameID'] = $c_value;
$base->insert('balances', array('b_gameID'=>$c_value));
}
echo json_encode(array('response'=>1, 'gameID'=>$_COOKIE['gameID']));
break;
Я ожидаю, что новое окно будет открыто один разЯ нажимаю кнопку «Пуск» после настройки файла cookie в браузере, но мне нужно нажать кнопку дважды, при первом нажатии: он устанавливает файл cookie, а при повторном нажатии он открывает окно.