0

我有当前代码:

<button onclick="ismeloggedin()">

脚本:

function ismeloggedin(){
    if(checkloggedin()){
        alert('you"re logged in');
    }else{
        alert('you didn"t login!!!!');
    }
}

function checkloggedin(){
    $.post('/test/check/',{'loggedin':0},function(data,status){
        return (data.status == 'error')?false:true; 
    });
}

php 不是必需的,但还是要发布

function check(){
    is(isset($_POST['loggedin'])){
        if(isLoggedIn()){
            $json = ['status'=>'success'];
        }else{
            $json = ['status'=>'error'];
        }
        header('Content-Type: application/json; charset=utf-8');
        echo json_encode($json);
    }
}

我的问题是checkloggedin()这个函数返回undefined

而是返回真/假

4

2 回答 2

2

jQuery 的post功能是异步的。这意味着您的函数在数据加载之前返回,因此无法将该值恢复为原始函数。

您必须重新考虑代码的结构,记住数据不会立即可用。例如,当页面加载时您可以发送请求,然后当它完成时(即当您的内部函数被调用时)您可以相应地修改页面上的内容。

于 2013-05-27T12:08:19.657 回答
0
function GenerateResult(pResult){
    if(pResult){
        alert('you\'re logged in');
    }else{
        alert('you didn\'t login!!!!');
    }
}

function ismeloggedin(){
    $.post('/test/check/',{'loggedin':0},function(data,status){
        GenerateResult((data.status == 'error')?false:true);
    });
}
于 2013-05-27T12:11:25.953 回答