我有一個頁面,其中的內容通過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調用上。
你確定,PHP會被忽略嗎?你知道,當你「迴應」某些東西時,PHP只會產生「效果」,對吧? – ATaylor
絕對!我對PHP網頁很有經驗。例如,如果我這樣做:'<?php exit(); ?>'HTML仍然顯示。或者如果我用<?php echo「Some Text」替換HTML中的一個單詞串; ?>「某些文字」沒有找到的地方。 –
如果你做'查看源代碼',顯示的是PHP代碼嗎?''可能是隱藏的,但仍然從服務器返回。如果是這樣,那麼PHP不會在服務器上解析 - 它是一個服務器設置問題 – Robbie