2016-06-03 10 views
0

Ich versuche, wie dies alle JSON-Dateien in einem Verzeichnis auf meinem Server zur Liste:Ajax nicht alle Dateien in Verzeichnisliste

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); 
     }); 
    } 
    }); 
} 

Es funktioniert, außer es nur 4 Dateien auflistet, wenn 6. Die sind nur Was ich bemerke, ist, dass die 2, die es vermisst, längere Dateinamen haben. Was könnte das verursachen?

Die Dateien werden wie folgt benannt:

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

Können wir die Verzeichnisliste Seite HTML-Quellcode sehen? (AKA der HTML, den Ihr JavaScript analysiert). –

+0

gibt es keine. Es listet auf, was in dem Verzeichnis ist. – Cybernetic

+0

Klicken Sie mit der rechten Maustaste auf die Seite und dann auf "Quelle anzeigen". Sogar Verzeichnisseiten haben Quellcode. –

Antwort

0

Wie pro @Marco Antwort, die serverseitige Skript unterschiedlich die Ergebnisse zurück benötigt:

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 

Die Dateiliste sieht wie folgt aus. Dann kann der Ajax so funktionieren, wie er sollte. Das folgende PHP-Skript listet Dateien vollständig auf:

<?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> 
Verwandte Themen