php
  • javascript
  • 2013-06-12 4 views 1 likes 
    1

    У меня есть кусок кода, я работаю, с которой населяет выпадающий со списком папок в определенном каталоге:Сортировать заселен выпадающий по имени

    <?php 
    echo '<form>'; 
    $path = "images/"; 
    $handle = opendir($path); 
    echo "<select style='width:80%' name='URL' onchange='window.location.href=this.form.URL.options[this.form.URL.selectedIndex].value'><option value>Select Folder...</option>";  
    while ($file = readdir($handle)) { 
        if (substr($file,0,1) != ".") { 
        echo "<option value ='/view.php?user=".$file."'>".$file."</option>"; 
        } 
    } 
    echo '</select></form>'; 
    closedir($handle); 
    ?> 
    

    Это работает отлично, за исключением отображает список в случайный порядок, есть ли способ, которым я могу реализовать что-то, чтобы отсортировать список, прежде чем создавать его в поле со списком?

    Спасибо.

    +4

    Прочитайте их в массив, а затем отсортировать массив перед отображением вывода. – Anigel

    +0

    Можете ли вы вести меня, в котором я могу прочитать их в массиве и все еще использовать массивы в поле со списком? –

    ответ

    0

    Нечто подобное:

    while ($file = readdir($handle)) { 
        if (substr($file,0,1) != ".") { 
         $tmparray[] = $file; 
        } 
    } 
    sort($tmparray); 
    foreach($tmparray as $file) 
        echo "<option value ='/view.php?user=".$file."'>".$file."</option>"; 
    
    +0

    Я пробовал это, но он не заполняет поле со списком –

    +1

    Вместо '$ tmparray = $ file;' try '$ tmparray [] = $ file;' – Anigel

    +0

    @AshKing я забыл о линге. Попробуй. Спасибо Anigel – Guerra

    Смежные вопросы