AJAX请求未被提交,但调用了Javascript函数

时间:2017-10-19 10:39:12

标签: javascript php ajax

我是使用AJAX的全新手段,我希望动态生成一些信息来计算某些日期,但最终这并不重要。

我需要将周和年发送到包含AJAX代码的Javascript函数,然后该函数应根据它指向的文件中的内容返回信息。

单击按钮时,"运行计划程序"它调用以下代码。但是,只有"访问功能的警报。周=" +周+"年=" +年"叫做。其他警报不会被称为暗示未达到警报。同样,我请求的页面上的代码也不起作用。

有人可以指出我正确的方向,还是积极发现我出错的地方?

非常感谢:

<script>

function autoCalculatePlanner(week, year){

alert("Accessed Function. Week = " + week + " Year = " + year);
 xhttp = new XMLHttpRequest();

 xhttp.onreadystatechange = function() {

    if (this.readyState == 4 && this.status == 200) {
        alert("State Ready");
        document.getElementById("test").innerHTML = this.responseText;
        alert("Document Submitted");
   }
     else{
         document.getElementById("test").innerHTML = "Error";
     }
    xhttp.open("GET", "ajax/auto_calculate_planner.php?week=" + week + "&year=" + year, true);;
    xhttp.send();
};


}



</script>

更新

用户&#34;不要恐慌&#34;提供了我的代码的修订版本如下:

function autoCalculatePlanner(week, year) {
alert("Accessed Function. Week = " + week + " Year = " + year);
xhttp = new XMLHttpRequest();
xhttp.open("GET", "ajax/auto_calculate_planner.php?week=" + week + "&year=" + year, true);;
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        alert("State Ready");
        document.getElementById("test").innerHTML = this.responseText;
        alert("Document Submitted");
    } else {
        document.getElementById("test").innerHTML = "Error";
    }
};
xhttp.send();
}

这是非常有帮助的,至少现在引起了回应。但是,我得到了&#34;错误&#34;消息而不是提交任何内容。我试图做自己的研究,但我再也找不到如何解决这个问题。

有人可以提供有关我可能出错的地方的其他信息吗?

可能需要的其他信息:

我尝试通过GET处理的文件位于名为&#34; ajax&#34;的子文件夹中。 如果建议发布该文件的代码,我也会这样做。

2 个答案:

答案 0 :(得分:1)

totalCharCount回调之前,您实际上并未执行请求。如果请求没有发生,状态将永远不会改变。

以下是您的代码的更正版本:

onreadystatechange

Reference docs

答案 1 :(得分:1)

它只是一个paranthesis问题,你必须在xhttp.onreadystatechange之外调用xhttp.open和xhttp.send,而不是在

之内

&#13;
&#13;
function autoCalculatePlanner(week, year){
alert("Accessed Function. Week = " + week + " Year = " + year);
 xhttp = new XMLHttpRequest();

 xhttp.onreadystatechange = function() {

    if (this.readyState == 4 && this.status == 200) {
        alert("State Ready");
        document.getElementById("test").innerHTML = this.responseText;
        alert("Document Submitted");
   }
     else{
         document.getElementById("test").innerHTML = "Error";
     }
    
};
xhttp.open("GET", "ajax/auto_calculate_planner.php?week=" + week + "&year=" + year, true);;
    xhttp.send();

}
&#13;
&#13;
&#13;