Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 初学者XMLHttpRequest在处理过程中遇到问题_Php_Http_Xmlhttprequest - Fatal编程技术网

Php 初学者XMLHttpRequest在处理过程中遇到问题

Php 初学者XMLHttpRequest在处理过程中遇到问题,php,http,xmlhttprequest,Php,Http,Xmlhttprequest,我正在测试一个脚本,以允许我的日历加载当前月份。然而,当我打开页面时,它只显示“正在处理…”,我不明白为什么 <script language="JavaScript" type="text/javascript"> function initialCalendar(){ var hr = new XMLHttpRequest(); var url = "calendar_start.php"; var currentTime = new Date()

我正在测试一个脚本,以允许我的日历加载当前月份。然而,当我打开页面时,它只显示“正在处理…”,我不明白为什么

    <script language="JavaScript" type="text/javascript">
function initialCalendar(){
    var hr = new XMLHttpRequest();
    var url = "calendar_start.php";
    var currentTime = new Date();
    var month = currentTime.getMonth() + 1;
    var year = currentTime.getFullYear();
    showmonth = month;
    showyear = year;
    var vars = "showmonth="+showmonth+"&showyear="+showyear;
    hr.open("POST", url, true);
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    hr.onreadystatechange = function() {
        if(hr.readyState == 4 && hr.status == 200) {
            var return_data = hr.responseText;
            document.getElementById("showCalender").innerHTML = return_data;
        }
    }
    hr.send(vars);
    document.getElementById("showCalendar").innerHTML = "processing...";
}
</script>

函数initialCalendar(){
var hr=新的XMLHttpRequest();
var url=“calendar\u start.php”;
var currentTime=新日期();
var month=currentTime.getMonth()+1;
var year=currentTime.getFullYear();
showmonth=月份;
showyear=year;
var vars=“showmonth=“+showmonth+”&showyear=“+showyear;
hr.open(“POST”,url,true);
hr.setRequestHeader(“内容类型”、“应用程序/x-www-form-urlencoded”);
hr.onreadystatechange=函数(){
如果(hr.readyState==4&&hr.status==200){
var return_data=hr.responseText;
document.getElementById(“ShowCalendar”).innerHTML=返回数据;
}
}
人力资源发送(vars);
document.getElementById(“showCalendar”).innerHTML=“处理…”;
}
主体是:

<body onLoad="initialCalendar();">

<div id="showCalendar"></div>

</body>

您在onreadystatechange调用中已将Calendar拼写为e,但它应该可以工作


我建议将“处理”行移到hr.send(vars)语句上方,以避免出现竞争条件。

试试jquery,更简单:-)一开始很难,但值得一试。
onreadystatechange
是否返回任何内容?首先要查看的是JavaScript控制台是否有任何错误,以及
calendar\u start.php
是否有文件被
POST
插入的迹象。例如,你有没有登录过PHP?