为了对几个不同的文件使用相同的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
}
答案 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
}