ajax onclick事件第一次获取错误结果但第二次更正

时间:2016-03-05 17:20:12

标签: javascript php ajax

问题是第一个问题加载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); 
}

2 个答案:

答案 0 :(得分:0)

好吧,我没有放弃并自己得到解决方案,我将这个问题发布到答案中,以便其他人有同样的问题。 我刚从onreadystatechange中删除了if else条件并将其放在函数上方,它对我有效。

答案 1 :(得分:0)

我遇到了类似的问题,并通过将asyncron的HTTP请求设置为syncron来解决它(请参阅Autoroute step by step using Yours http request has a time lag)。

你是以同样的方式解决问题还是找到了更好的问题?

最好的问候,Reinhard