我有一个页面,其中内容是通过对相应 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 调用上。