使用点击按钮的ID运行AJAX请求

时间:2014-03-17 01:06:09

标签: javascript ajax

为了对几个不同的文件使用相同的AJAX请求,我有一个AJAX请求,它使用按下的按钮的ID来选择下一个所需的文件。

所以按钮看起来像这样:

<button type="button" id="question_1" onclick="nextQuestion(this.id)">Start the challenge</button>

AJAX请求的开头将按钮ID作为参数:

function nextQuestion(buttonID)

因此按下按钮时会从按钮中收集buttonID变量:

var splitID = buttonID.split('_'); //split the ID from the end of the button
var questionID = splitID.pop();

然后使用此ID生成所请求的文件名。

xmlhttp.open("GET","question" + questionID + ".php",true); // concatenate button ID to filename

由于某种原因,即使我让它在另一个区域工作,这也不起作用。我无法弄清楚我做错了什么。完整的AJAX请求是:

function nextQuestion(buttonID){
quizScore = 0;
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("gameWrapper").innerHTML=xmlhttp.responseText;
    }
  }
var splitID = buttonID.split('_'); //split the ID from the end of the button
var questionID = splitID.pop();
xmlhttp.open("GET","question" + questionID + ".php",true); // concatenate button ID to filename
}

1 个答案:

答案 0 :(得分:1)

错过xmlhttp.send(null);功能。

尝试:

function nextQuestion(buttonID){
    quizScore = 0;

    var xmlhttp;
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    var splitID = buttonID.split('_'); //split the ID from the end of the button
    var questionID = splitID.pop();
    xmlhttp.open("GET","question" + questionID + ".php",true); // concatenate button ID to filename

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById("gameWrapper").innerHTML=xmlhttp.responseText;
        }
    };

    xmlhttp.send(null);//send request
}