问题是,当我单击按钮获取下一个问题(即第二个问题)时,第一个问题现在加载onload
函数,但它再次获取第一个问题,之后,当我单击下一个时,它会获取第二个问题。现在,如果我想从另一个主题获取问题,假设数学部分,我将变量的值设置为 15,当我单击数学时,它首先递增问题,然后无论我单击什么按钮,它仍然跳到问题 15。
var question = 1;
function ajaxFunction (_direction) {
var ajaxRequest;
try {
ajaxRequest = new XMLHttpRequest();
} catch (e) {
try {
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("Your browser broke!");
return false;
}
}
}
ajaxRequest.onreadystatechange = function () {
if (ajaxRequest.readyState == 4 && ajaxRequest.status== 200) {
var ajaxDisplay = document.getElementById('ajaxDiv');
if (_direction=='') {
question=1;
} else if (_direction=='next') {
question++;
} else if (_direction>=1 && _direction <=90) {
question = _direction;
}
}
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
ajaxRequest.open("GET", "ajax-example.php?q="+question, true);
ajaxRequest.send(null);
}
好吧,我没有放弃并自己得到了解决方案,我正在回答这个问题,以便如果其他人有同样的问题。我刚刚从 onreadystatechange 中删除了 if else 条件并将其放在函数上方,它对我有用。
我遇到了类似的问题,并通过将 HTTP 请求从异步器设置为同步器来解决它(请参阅使用您的 http 请求有时间滞后逐步自动路由)。
您是以同样的方式解决问题还是找到了更好的问题?
最好的问候,莱因哈德