0

私は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側で配列を印刷できますが、すべて問題ありません。しかし、私が警戒する唯一のことは

読み込まれたデータ: [object オブジェクト]、[object オブジェクト]、[object オブジェクト]、[object オブジェクト]、[object オブジェクト]、[object オブジェクト]、[object オブジェクト]、[object オブジェクト]、[object オブジェクト]、[objectオブジェクト]、[オブジェクト オブジェクト]、[オブジェクト オブジェクト]

4

1 に答える 1

1

まず、Javascriptalert()関数は非常に基本的なものです。文字列入力のみを処理できます。オブジェクトまたは配列を指定すると、チョークします。オブジェクトを与えているので、その事実をできる限り最善の方法で示しています。

変数の内容を実際に確認したい場合はdata、ブラウザではなく、ブラウザのデバッグ ツールを使用することをお勧めしますalert()。最新のブラウザにはすべてconsole.log()、アラート ボックスではなく、デバッグ コンソールにデバッグ データを出力する機能があります。これにより、より有益な情報が得られます。F12 を押して、任意のブラウザーでデバッグ パネルを取得します。

SPLFileInfoしかし、私の推測では、一連のオブジェクトを出力するつもりはありません。ファイル名の配列を送信しようとしているようです。

ループに使用している反復子はSPLFileInfo、ファイル名だけでなくオブジェクトを生成します。

ファイル名だけを取得するには、次のgetFilename()ようにメソッドを使用します。

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

これでファイル名の配列が生成されます。これはあなたが望むものだと思います。

于 2013-02-05T14:36:42.083 に答える