我有当前代码:
<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
而是返回true / false
答案 0 :(得分:2)
jQuery&#39; post
函数是异步。这意味着您的函数在加载数据之前返回,因此无法将该值恢复为原始函数。
您必须重新考虑代码的结构,记住数据不会立即可用。例如,当页面加载时你可以发送请求,然后当它完成时(即当你的内部函数被调用时),你可以相应地修改页面上的内容。
答案 1 :(得分: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);
});
}