Ajax を使用して、html ファイル (javascript を含む) に php 関数を実装しようとしています。JSON ファイルであるすべてのファイルをローカルで取得しようとしています。これに従うために最善を尽くしました: http://tinyurl.com/n7zttd9しかし、問題が発生しています。なんらかの理由で、アラート ステートメントで未定義になっています (これは、これまでに印刷ステートメントに最も近いものですが、印刷する他のオプションがある場合は、それらに対して非常にオープンです)。これが私のローカルhtmlファイルの私のコードの一部です:
<script language="javascript" type="text/javascript">
<!--
//Browser Support Code
function AjaxCaller(){
var xmlhttp;
try{
// for firefox, safari, opera
xmlhttp = new XMLHttpRequest();
}catch(e){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
xmlhttp = false;
alert("Your browser broke!");
}
}
}
if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function callPage(url, div){
ajax=AjaxCaller();
ajax.open("GET", url, true);
ajax.onreadystatechange=function(){
if(ajax.readyState==4){
if(ajax.status==0){
div.innerHTML = ajax.responseText;
}
}
}
ajax.send(null);
}
//-->
</script>
<script id='code-js' type="text/javascript">
/*...*/
function load(){
var jsonstuff = callPage('findjson.php', document.getElementById('checkjson'));
alert(jsonstuff);
Scene.loadObject(jsonstuff);
}
/*...*/
</script>
これが私のphpコードです(ファイルはローカルにfindjson.phpです)
<?php
function checkjson() {
foreach (glob("*.json") as $filename) {
return $filename;
}
?>
ローカルでは ajax.status コードが 0 でなければならないことがオンラインでわかったため、0 の ajax.status コードを使用しました。ほぼすべての行にアラートステートメントを配置しましたが、すべてのコードを正常に通過したように見えました (ステータスが 0 で、readyState が 4 のように)。document.getElementById の Id が間違っていると思いますが、他に何を入力すればよいかわかりません。私が投稿した URL で、彼らが targetId を使用していたことは知っていますが、私はそれを定義していないので、使用すべきではないと思います。
ご不明な点がございましたらお知らせください。どうもありがとう :)