繁体   English   中英

javascript中的php json数组数据

[英]php json array data in javascript

我是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>

.......我可以在php端打印数组,这一切都很好。 但是我唯一要警惕的是

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

首先,JavaScript alert()函数非常基础。 它只能处理字符串输入。 如果给它一个对象或数组,它将阻塞。 您正在为它提供对象,因此它将以最佳方式向您显示该事实。

如果您真的想查看data变量包含的内容,建议您使用浏览器的调试工具,而不要使用alert() 所有现代浏览器都具有console.log()函数,该函数将调试数据输出到调试控制台,而不是警报框。 这将为您提供更多有用的信息。 按F12键可在任何浏览器中打开调试面板。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM