2015-06-24 2 views
0

У меня есть следующий код. Я ищу, чтобы сделать то, что находится в комментарии, который состоит в том, чтобы заполнить selectbox с именем каталогов. Как мне это сделать?Populate selectbox с каталогами

$path = 'repository/' . $name[0]; 
$results = scandir($path); 

foreach ($results as $result) { 
if ($result === '.' or $result === '..') continue; 

if (is_dir($path . '/' . $result)) { 
    //extract directory names and populate selectbox 
    } 
} 

ответ

1

В может быть самой простой:

echo "<select name=\"something\">"; 
foreach(glob("repository/{$name[0]}/*", GLOB_ONLYDIR) as $dir) { 
    echo "<option>$dir</option>"; 
} 
echo "</select>"; 
+0

Мне нравится это лучше, чем у меня: р – DanielM

+0

Легко и чистый. Благодаря! – hikaru12

+0

@ AbraCadaver - один вопрос о вашем методе. Как проверить, какой вариант был выбран? По массиву? – hikaru12

0

быстрый и грязный раствор, предполагая, что результат является каталог, который вы хотите показать:

echo '<select id="directories" name="directories">'; 
foreach ($results as $result) { 
if ($result === '.' or $result === '..') continue; 

if (is_dir($path . '/' . $result)) { 
    echo '<option value="' . $result . '">' . $result . '</option>'; 
    } 
} 
echo '</select>'; 
0

Возможно, я не понял вопрос, но верно это просто:

<?php 

$selectString = '<select>'; 

$path = 'repository/' . $name[0]; 
$results = scandir($path); 

foreach ($results as $result) { 
    if ($result === '.' or $result === '..') { 
     continue; 
    } 

    if (is_dir($path . '/' . $result)) { 
     $selectString .= "<option>{$result}</option>"; 
    } 
} 
$selectString .= "</select>" 

Затем вы можете разместить $selectString там, где вам это нужно.

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