0

ローカル サーバーのディレクトリから画像スライドショーを作成しようとしています。を使用してファイルにアクセスするためにphpを使用していますreadDir()。私は、変数を JavaScript 配列に渡して、必要な機能にアクセスしたいと考えています。今、私はそれらを画面に出力して動作することを確認しようとしていますが、画面には何も表示されません。

<html>
  <head>
  </head>
  <body>
    <script type = "text/javascript">
      var images = new Array();
<?php
$dp = opendir("img/slideshow");
while($currentFile !== false){
  if($currentFile != "." && $currentFile != ".."){
    $currentFile = readDir($dp);
    echo("images.push('{$currentFile}');");
  }
}
?>
      for(var i = 0; i < images.length; i++){
        document.write("<a href = '" + images[i] + "'>" + images[i] + "</a>");
      }
    </script>
  </body>
</html>

私にはかなり論理的に思えました。最初に javascript 配列を作成し、次に php 部分でディレクトリを開いて読み取り、現在のファイルを javascript 配列にプッシュするコード行をエコー出力します。次に、各配列項目を出力する必要がありますが、空白の画面が表示されます。*注: ファイルを php 配列に配置して印刷すると、問題なく動作しますが、javascript を介して配列にアクセスしてアニメーションを配置することはできません*

4

2 に答える 2

1

使用できますjson_encode()。例えば:

<html>
  <head>
  </head>
  <body>
    <script type = "text/javascript">

<?php
$dp = opendir("img/slideshow");
$arrayjs = array();
while($currentFile !== false){
  if($currentFile != "." && $currentFile != ".."){
    $currentFile = readDir($dp);
    $arrayjs[] = $currentFile;
  }
}
echo "var images = " . json_encode($arrayjs) . ";";
?>

      for(var i = 0; i < images.length; i++){
        document.write("<a href = '" + images[i] + "'>" + images[i] + "</a>");
      }
    </script>
  </body>
</html>
于 2013-03-14T17:24:42.853 に答える
0
<?php
$dir="img/slideshow";//set the working directory
$pics= scandir($dir) ;//Makes a array with all the items of the array
unset($pics[0],$pics[1]);//first and second ellement are the "."".." is nesecery to unset!
$string = '<script type ="text/javascript">var images =[ ';
foreach($pics as $key => $item) {
$string.='"'.$item.'",';
}
echo substr($string, 0, -1)."];</script>"; ?>
于 2015-05-25T14:39:28.177 に答える