Возвращение значений массива (имена файлов изображений до javascript) из php - PullRequest
0 голосов
/ 08 мая 2020

Привет, у меня есть файл php, который читает все файлы изображений в каталоге следующим образом:

    <?php

$dir = "Images/";
$arrayjs = array();

// Open a directory, and read its contents
if (is_dir($dir)){
  if ($dh = opendir($dir)){
    while (($file = readdir($dh)) !== false){
    if($file != "." && $file != ".."){
         $arrayjs[] = $file;
        echo "filename:" . $file . "<br>";
    }
    }
    closedir($dh);
  }
}

header('Content-type:application/json;charset=utf-8'); 
 echo json_encode($arrayjs);
?>

, и я хочу получить результирующий массив в javascript. Этот код не работает. Есть идеи, почему?

 <script type = "text/javascript">
 $(function() {
    $.getJSON('fileNames.php', function(data) {
        console.log('yaa');
        $(data).each(function(key, value) {
            console.log(value);
        });
    });
});


    </script>

1 Ответ

0 голосов
/ 09 мая 2020

get Json выполняет вызов ajax, который будет читать содержимое файла в том виде, в каком он записан / отображен, поэтому ваш echo "filename:" . $file . "<br>"; становится частью этого, что означает, что ваш json становится недействительным

закомментируйте эту строку, и все будет в порядке

 <?php

$dir = "Images/";
$arrayjs = array();

// Open a directory, and read its contents
if (is_dir($dir)){
  if ($dh = opendir($dir)){
    while (($file = readdir($dh)) !== false){
    if($file != "." && $file != ".."){
         $arrayjs[] = $file;
        //echo "filename:" . $file . "<br>";
    }
    }
    closedir($dh);
  }
}

header('Content-type:application/json;charset=utf-8'); 
 echo json_encode($arrayjs);
?>

Метод не хочет ничего, кроме действительного json, которое выводится / отображается

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...