それぞれの 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 呼び出しでのみ発生しています。