我试图一个接一个地运行showBalance和showTeam函数。它们首先由鼠标点击触发,即addPlayer函数。我希望其他两个也能在连锁反应中执行。目前只有一个showBalance / showTeam函数可以在任何时候工作。
function addPlayer(playerID, playerValue) {
if (ajaxObject.readyState == 4 || ajaxObject.readyState == 0) {
ajaxObject.open("GET", "http://localhost:8888/FantasyFootball/V3.0/addPlayer.php?playerID=" + playerID + "&playerValue=" + playerValue, true);
document.getElementById("error").innerHTML = ajaxObject.responseText;
ajaxObject.onreadystatechange = showBalance;
ajaxObject.send();
}
}
function showBalance() {
ajaxObject.onreadystatechange = function () {
if (ajaxObject.readyState == 4 && ajaxObject.status == 200) {
document.getElementById("balance").innerHTML = ajaxObject.responseText;
}
}
ajaxObject.open("GET", "http://localhost:8888/FantasyFootball/V3.0/bankBalance.php", false);
ajaxObject.onreadystatechange = showTeam;
ajaxObject.send();
}
function showTeam() {
ajaxObject.onreadystatechange = function () {
if (ajaxObject.readyState == 4 && ajaxObject.status == 200) {
document.getElementById("playerFormation").innerHTML = ajaxObject.responseText;
}
}
ajaxObject.open("GET", "http://localhost:8888/FantasyFootball/V3.0/showSquad.php", false);
ajaxObject.send();
}
答案 0 :(得分:0)
showBalance()
正在另一个onreadystatechange
处理程序中执行其readystate检查,并且正在设置此处理程序两次。它应该直接检查它们,然后为下一个AJAX调用设置处理程序。
function showBalance() {
if (ajaxObject.readyState == 4 && ajaxObject.status == 200) {
document.getElementById("balance").innerHTML = ajaxObject.responseText;
ajaxObject.open("GET", "http://localhost:8888/FantasyFootball/V3.0/bankBalance.php", false);
ajaxObject.onreadystatechange = showTeam;
ajaxObject.send();
}
}
function showTeam() {
if (ajaxObject.readyState == 4 && ajaxObject.status == 200) {
document.getElementById("playerFormation").innerHTML = ajaxObject.responseText;
ajaxObject.open("GET", "http://localhost:8888/FantasyFootball/V3.0/showSquad.php", false);
ajaxObject.onreadystatechange = showSquad; // I'm just guessing
ajaxObject.send();
}