M3T3XU Ответов: 1

Как мне получить все файлы из каталога и добавить их в переменную javascript


Привет, Ребята!
Я делаю аудиоплеер с использованием html и javascript.
У меня есть проблема с поиском музыкальных файлов.
Я не знаю, как получить все файлы из dir /songs/ и поместить их в var songs.

Я получаю эту ошибку, которая говорит, что переменные песни не определены:
exp-1.10-vPlayer.js:18 Uncaught TypeError: не удается прочитать свойство '0' undefined
в playSong (exp-1.10-vPlayer.js:18)
в playOrPauseSong (exp-1.10-vPlayer.js:39)
at HTMLButtonElement.onclick ((индекс):13)


Что я уже пробовал:

Мой код:
echo '<script> var songs; </script>';
$spath = $_SERVER['DOCUMENT_ROOT'];
$spath .= "/vas/beta/audio-player/songs/";
$fileList = glob('{$spath}*.mp3');

foreach($fileList as $filename){
    echo '<script> songs.push("', $filename, '"); </script>';
}

Richard MacCutchan

Что такое строка 18?

M3T3XU

Строка 18-Это просто призыв к песням:

функция playSong(){

alert(песни[0]);
...

Richard MacCutchan

Ну переменная songs в этот момент он не определен, поэтому вам нужно проследить назад через код, чтобы выяснить, почему.

1 Ответов

Рейтинг:
1

M3T3XU

Хорошо.
Я понял, в чем дело. Я исправил свой php и js код, и теперь он работает идеально!

echo '<script>';
echo "\r\n";
echo 'var songs = [];';
echo "\r\n";
$spath = $_SERVER['DOCUMENT_ROOT'];
$spath .= "/vas/beta/audio-player/songs/";
$files = scandir($spath);
foreach($files as $file) {
   if($file != '.' && $file != '..'){
      echo 'songs.push("/vas/beta/audio-player/songs/', $file, '");';
      echo "\r\n";
   };
}

echo '</script>';
echo "\r\n";


Richard Deeming

Вам нужно будет убедиться, что вы правильно кодируете $file чтобы убедиться, что он не выходит из контекста строки Javascript. В противном случае вы можете открыть потенциальную уязвимость межсайтового скриптинга в своем коде.