我正在尝试使用 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;
}
?>
我使用了 0 的 ajax.status 代码,因为我在网上发现它在本地必须为 0。我几乎在每一行都放了警告语句,它似乎可以通过所有代码(就像它的状态为 0 和 readyState 为 4)。我认为我的 document.getElementById 的 ID 是错误的,但我不确定还能放什么。我在我发布的网址中知道他们使用了 targetId,但我认为我不应该使用它,因为我没有定义它。
如果有任何不清楚的地方,请告诉我。非常感谢 :)