必须单击两次按钮才能运行功能,应一按即可工作

时间:2019-01-23 08:28:54

标签: javascript php jquery ajax

我必须单击“开始”按钮两次才能使Ajax的成功响应功能正常工作。我希望它能一键工作。

这是一个游戏网站,一旦通过PHP Ajax单击游戏,该网站就会设置一个新的cookie,并且在设置cookie时,将发送成功数据并打开包含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,然后再次单击时,它将打开窗口。

0 个答案:

没有答案