彼此运行2个ajax函数

时间:2013-05-26 22:13:38

标签: javascript ajax

我试图一个接一个地运行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();
}

1 个答案:

答案 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();
}
相关问题