Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 登录状态指示器功能不工作_Php_Javascript_Jquery_Ajax - Fatal编程技术网

Php 登录状态指示器功能不工作

Php 登录状态指示器功能不工作,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我在ajax php数据库的主页上有一个登录状态指示器div。单击“登录”按钮可执行两项操作 <input value="Login" type="button" onclick='logIntheUser(/*function to process login request*/);updateLoginStatusIndicator(/*function to update login status in login staus indicator div*/);' /> 现在

我在ajax php数据库的主页上有一个登录状态指示器div。单击“登录”按钮可执行两项操作

<input value="Login" type="button" onclick='logIntheUser(/*function to process login request*/);updateLoginStatusIndicator(/*function to update login status in login staus indicator div*/);' />
现在的问题是,用户在一段时间内成功登录(即设置了会话['username']),但第二个函数仍然显示“未登录”。登录状态指示器不总是工作。如果
更新登录状态指示器
logIntheUser
之后运行,则它将正确更新登录状态。但我不知道怎么做。请帮忙

编辑


当我以回调的形式调用函数时,例如:logIntheUser(updateLoginStatusIndicator()),它仍然不起作用(可能是我的回调方法不正确)。然后当我添加
时设置时间限制(1)
updateLoginStatusIndicator()
函数脚本延迟1秒,它开始工作,但延迟脚本不是最佳做法。请帮助我如何毫不延迟地使用它,以便只有在
logIntheUser()
函数完成执行后,才能执行
updateLongStatusIndicator()
函数。请提供帮助。

在大多数情况下,当第一个函数出现错误时,会发生这种情况。确保任何东西都可以停止脚本的执行

编辑:

我建议您在
onclick
事件上使用单函数回调修改HTML:

onclick="logInProcedure();"
在JS中:

function logIntheUser() {

    /* Your code to process login */

    /* set a boolean variable to true or false */

    if(sucessfulyLoggedin) {
        return true;
    }

    return false;

}

function updateLoginStatusIndicator() {

    /* Your code here */

}


function loginProcedure() {

    if(logIntheUser()) {
        updateLoginStatusIndicator();
    }

}

logIntheUser()执行AJAX请求,对吗?updateLoginStatusIndicator()的问题很可能在于,在logInTheUser()之后调用if,而不是在AJAX请求成功完成之后。也就是说,它可以在更新之前获取用户的状态。您应该在AJAX请求的回调中调用updateLoginStatusIndicator()。

只需从logInTheUser函数返回一些值,并在该函数返回值时调用updateLoginStatusIndicator函数

尝试在不使用isset函数的情况下执行此操作,有时isset不能根据服务器设置的变量工作。@RavinderSingh,嗯,不是这样的。我想这是因为函数执行的时间。如果在第一个函数
logIntheUser
完全执行后运行第二个函数
updateLogenstatusIndicator
,则此错误将被修复。但是我不知道如何运行第一个函数
logIntheUser
,使第二个函数
updateLoginStatusIndicator
等待第一个函数完成,然后运行它。只需从logInTheUser函数返回一些值,并在该函数返回值时调用updateLoginStatusIndicator函数。第一个函数
logInTheUser
工作正常,因为当我刷新页面用户已成功登录。请检查对我的问题的编辑,我已添加更多详细信息。感谢您的帮助,您的意思是我必须使用logIntheUser(,,updateLoginStatusIndicator())对吗?@Exander我以回调的方式调用了该函数,例如:logIntheUser(,,updateLoginStatusIndicator()),但它仍然不起作用(可能是我的回调方法不正确)。然后我添加了set_time_limit(1);发送到第一个函数脚本以将其延迟1秒。延迟其工作,但这不是延迟脚本的最佳实践。请帮助我如何才能毫不拖延地工作?请检查我的问题的编辑,我已经添加了更多的细节。Thanks必须将所有javascript代码置于这样的条件下,即当您从第一个函数中获取值时,只有下面的代码才会执行。。。。 logInTheUser updateLoginStatusIndicator updateLoginStatusIndicator