我有一个页面,其中的内容通过对相应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调用上。
答案 0 :(得分:0)
我的问题是我用file_get_contents回显文件内容。我完全忘记了我使用这种方法而不是包含。