2012-10-11 21 views
0

我有一个页面,其中的内容通过ajax调用加载到相应的PHP页面。这里是我的JavaScript用来在网页内容加载到我的网页容器:ajax调用一个php页面,但php代码被忽略

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); 
} 

我在我的身体标签的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在Windows 2K3网络版4

UPDATE:

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

+0

你确定,PHP会被忽略吗?你知道,当你“回应”某些东西时,PHP只会产生“效果”,对吧? – ATaylor

+0

绝对!我对PHP网页很有经验。例如,如果我这样做:'<?php exit(); ?>'HTML仍然显示。或者如果我用<?php echo“Some Text”替换HTML中的一个单词串; ?>“某些文字”没有找到的地方。 –

+3

如果你做'查看源代码',显示的是PHP代码吗?''可能是隐藏的,但仍然从服务器返回。如果是这样,那么PHP不会在服务器上解析 - 它是一个服务器设置问题 – Robbie

回答

0

我的问题是我用file_get_contents回显文件内容。我完全忘记了我正在使用这个方法而不是include。