我有一個SIGN IN
按鈕,即onclick
調用函數login()
。裏面login()
我叫兩個功能:有沒有辦法讓功能在完成後立即採取行動?
function login()
{
signin();
statistics_table();
return false;
}
signin();
在($_SESSION['name']=$username;
)(ajax
)執行實際的簽名和statistics_table();
打印出相關的用戶或短信說表「請登錄查看您的統計數據」(如果登錄無效)(ajax
)。
問題是statistics_table()
總是打印出「請登錄...」。這好像signin()
尚未執行實際簽名。顯然它只有在函數login()
返回後纔會執行。
那麼是否有一種方法可以使signin()
在其完成後立即應用其操作?
我也試圖使按鈕調用的函數signin()
又經過statistics_table()
一個,像這樣:
<input type="submit" value="Sign In" onclick="signin(); statistics_table();">
但這種方式,當我點擊它還挺重新加載按鈕的頁面(再次,我需要它是ajax)。
在此先感謝
編輯:
這裏是signin()
實現:
function signin()
{
var name = document.getElementById('name').value;
var pw= document.getElementById('password').value;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("Test").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","members.php?name="+name+ "&password="+pw,true);
xmlhttp.send();
return false;
}
第一'A'在'AJAX'代表'Asynchronous'。在進入下一條指令之前,它不會等待完成。發佈你的'signin()'函數的內部,所以我們可以看到你是如何實現它的。你需要一個回調才能成功執行,其中'statistics_table()'被調用。 –
夠公平的。請參閱上面的編輯... –
在'readystate'評估內移動'statistics_table()'? – Ohgodwhy