javascript中的php json数组数据
我是PHP新手,我有以下场景; 在PHP端,我有一个文件get_folders.PHPjavascript中的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
$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())得到了这个。我可以把这些数据放到一个表中。但是我可以使用哪个组件,哪个组件是可点击的或可选择的。所以用户可以选择我提供的文件名。