javascript中的php json数组数据

javascript中的php json数组数据,php,javascript,jquery,arrays,json,Php,Javascript,Jquery,Arrays,Json,我是PHP新手,我有以下场景; 在PHP端,我有一个文件get_folders.PHP <?php $arr = array(); foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/var z/www/scripts')) as $filename) { array_push($arr,$filename); } print (json_encode($arr)); ?>

我是PHP新手,我有以下场景; 在PHP端,我有一个文件get_folders.PHP

<?php
$arr = array();
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/var       z/www/scripts')) as $filename)
{

 array_push($arr,$filename);
}
print (json_encode($arr));
?>

在html方面,我有

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head>
<script type="text/javascript" src="jquery.js"></script>          
<script type="text/javascript">   

function myFunction()
{
    $.getJSON("get_folders.php", function(data){


   alert("Data Loaded: " + data);

    $('#thetable');
   var html = '';
   for(var i = 0; i < 10 ; i++)
        html += '<tr><td>' + data;
   $('#thetable').append(html);
  });                                      

  }                  
 </script>                                                               
 </head>     
 <button onclick="myFunction()">Try it</button>
 <div>
 <table id="thetable">
 <th>Header 1</th>
 </tr>
 <tr>
 <td></td>
 </tr>
 </table>
 </div>

函数myFunction()
{
$.getJSON(“get_folders.php”),函数(数据){
警报(“数据加载:”+数据);
$(“#表格”);
var html='';
对于(变量i=0;i<10;i++)
html+=''''+数据;
$('#thetable').append(html);
});                                      
}                  
试试看
标题1
。。。。。。。 我可以在php端打印数组,一切都很好。但我唯一警觉的是


加载的数据:[对象对象对象],[对象对象],[对象对象对象],[对象对象对象],[对象对象对象],[对象对象对象],[对象对象对象],[对象对象],[对象对象对象],[对象对象对象]

首先,Javascript
alert()
函数非常基本;它只能处理字符串输入。如果给它一个对象或数组,它将阻塞。你给了它对象,所以它以最好的方式向你展示了这个事实

如果您确实想查看
数据
变量包含的内容,我建议使用浏览器的调试工具,而不是
alert()
。所有现代浏览器都有一个
console.log()
函数,它将调试数据输出到调试控制台,而不是警报框。这会给你更多有用的信息。按F12键可在任何浏览器中获取调试面板

但我的猜测是,您不打算输出大量
SPLFileInfo
对象。看起来您可能打算发送一个文件名数组

用于循环的迭代器生成一个
SPLFileInfo
对象,而不仅仅是文件名

要仅获取文件名,可以使用
getFilename()
方法,如下所示:

foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/var/www/scripts')) as $fileinfo)
{
    array_push($arr,$fileinfo->getFilename());
}

这将生成一个文件名数组,我想这正是您想要的。

试试console.log(data);看看Chrome控制台或fire Bug,你真的在向浏览器发送PHP脚本的完整目录列表吗?小心这会带来安全隐患,这是意料之中的。对象的默认字符串表示形式是
[object object]
。您的数据很好,或者至少输出正常。不过这个循环看起来很奇怪。谢谢。我现在可以在alert和firebug中看到输出。虽然它是JSON格式的[“testscript3”、“testscript2”、“testscript3”],但firebug告诉我它是一个HTML响应。我现在想把这个JSON数组放到一个表中。我如何解析它?好的,我用$.each(data,function())得到了这个。我可以把这些数据放到一个表中。但是我可以使用哪个组件,哪个组件是可点击的或可选择的。所以用户可以选择我提供的文件名。