ajax调用php页面但忽略了php代码

时间:2012-10-11 16:04:44

标签: php ajax

我有一个页面,其中的内容通过对相应PHP页面的ajax调用加载。这是我的javascript,用于将页面内容加载到我的页面容器中:

function loadPage(filename,id){
    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("Error: Browser/Settings conflict");return false;}}}
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            document.getElementById(id).innerHTML = ajaxRequest.responseText;
        }
    }
    ajaxRequest.open("GET",filename,true);
    ajaxRequest.send(null);
}

我的body标签中有一个onload事件来加载所需的页面(默认情况下我的$ page变量会加载第一页)

<body onload="loadPage('getpage.php?page=<?php echo $page; ?>','page_contents');">

一切正常,直到我尝试在这些页面文件中放置任何PHP。我有正确加载其他页面的按钮。我的ajax调用的php文件没有在<?php ?>标签内呈现任何php,没有给出错误,它只是被忽略了。当我在这些php文件中存储纯HTML时,一切都会显示出来。我甚至试图放置一个include();在一个不存在的文件上,看是否出现任何错误 - 没有显示。我还尝试在页面顶部发出一个exit(),它们仍然显示出来。

为什么我的php语法被忽略了?

这是在使用IIS 6和PHP 4的Windows 2K3 Web版本上。

更新:

我看到代码已经包含在HTML注释中了。当我直接查看页面(不使用ajax)时,PHP会正常呈现。这个问题只发生在我的ajax调用上。

1 个答案:

答案 0 :(得分:0)

我的问题是我用file_get_contents回显文件内容。我完全忘记了我使用这种方法而不是包含。