2016-06-03 2 views
0

Я пытаюсь получить список всех файлов JSon в каталоге на моем сервере, как это:Аякса не перечисляя все файлы в каталоге

listed_files = []; 
function list_files() { 
    $.ajax({ 
    url: "path_to_files/", 
    success: function(data){ 
     $(data).find("a:contains('.json')").each(function(){ 
     // will loop through 
     var files = $(this).attr("href"); 
     listed_files.push(files); 
     }); 
    } 
    }); 
} 

Он работает, за исключением того, что перечислены только 4 файла, когда есть только 6. вещь, которую я замечаю, состоит в том, что у 2 пропущенных файлов есть более длинные имена файлов. Что может быть причиной этого?

Файлы называются так:

file_name_a_this_is_long.json 
file_name_b_short.json 
file_name_c_short.json 
file_name_d_this_is_long.json 
file_name_e_short.json 
file_name_f_short.json 

Файл листинга выглядит следующим образом:

file_name_a_this_is_lo..> 
file_name_b_short.json 
file_name_c_short.json 
file_name_d_this_is_lo..> 
file_name_e_short.json 
file_name_f_short.json 
+0

Можем ли мы увидеть страницу со списком страниц с кодом HTML? (AKA HTML, что ваш JavaScript синтаксический анализ). –

+0

нет. Он перечисляет то, что находится в каталоге. – Cybernetic

+0

Щелкните правой кнопкой мыши на странице и нажмите «Просмотреть источник». Даже страницы со списком каталогов имеют исходный код. –

ответ

0

В соответствии с @ ответ Марко, на стороне сервера скрипт необходимо возвращать результаты по-разному. Тогда ajax может работать так, как должен. Следующий скрипт PHP будет перечислять файлы полностью:

<?php 
    if ($handle = opendir('.')) { 
     while (false !== ($file = readdir($handle))) 
     { 
      if (($file != ".") 
       && ($file != "..")) 
      { 
      $thelist .= '<LI><a href="'.$file.'">'.$file.'</a>'; 
      } 
     } 

    closedir($handle); 
} 
?> 

<P>List of files:</p> 
<UL> 
<P><?=$thelist?></p> 
</UL> 
Смежные вопросы