Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: помогите сделать выпадающий список файлов директории

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
ikirab1
Отправлено: 09 Декабря, 2011 - 17:40:23
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Помогите написать скрипт который будет сканировать директорию получать из нее название файлов и записывать их в выпадающий список! И чтобы после выбора пользователем файла он подключался в сценарий с помощью requare_once();
 
 Top
Данил_123
Отправлено: 09 Декабря, 2011 - 17:57:18
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




ikirab1 и что, где вопрос?
(Добавление)
все понял, тормознул:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $dir='files';
  4. $files=scandir($dir);
  5.  
  6. for($i = 1; $i<10;$i++){
  7. print "<a href=files/".$files[$i].">".$files[$i]."</a>"."<br />";
  8. }
  9. ?>


Выдаст 10 файлов
Достаточно, простой вариант, не рекомендую использовть, если допилить, то нормально

(Отредактировано автором: 09 Декабря, 2011 - 18:34:38)



-----
http://mysitecost.ru
 
 Top
Bio man
Отправлено: 09 Декабря, 2011 - 18:48:55
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?
  2. echo "<form method='post'>";
  3. echo "<select name='menu' size=1>";
  4. foreach(scandir('.') as $item){
  5.         if(is_file($item)) {
  6.                 echo "<option value='$item'>$item</option>";
  7.         }
  8.        
  9. }
  10. echo "</select>
  11. <input type='submit' name='submit' value='ok' />
  12. </form>";
  13. if($_SERVER['REQUEST_METHOD'] == 'POST'){
  14.         require_once $_POST['menu'];
  15. }
  16. ?>

(Добавление)
Данил_123 пишет:
не рекомендую использовть
а зачем тогда написал раз не рекомендуешь?
(Добавление)

вопрос к профи - будет ли при каждой итерации выполняться ф-ция scandir?
 
 Top
Данил_123
Отправлено: 09 Декабря, 2011 - 18:55:23
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




Bio man я ответил на вопрос, не рекондую, так как много лишнего кода генерируется.. $i = 1; $i<10;$i++ вместо 10 подсчитать количество файлов в папке через readdir вроде, и все код имеет право жизни


-----
http://mysitecost.ru
 
 Top
Bio man
Отправлено: 09 Декабря, 2011 - 18:58:53
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Данил_123, не актуально в данной задаче использовать цикл for. while или foreach, самое то.
 
 Top
etoYA
Отправлено: 09 Декабря, 2011 - 19:03:06
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




Данил_123, readdir? Не, не слышал... Как насчет count($files) ?
 
 Top
Данил_123
Отправлено: 09 Декабря, 2011 - 19:26:42
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




etoYA можно и count.. Можно посчитать количество ключей массива
(Добавление)
Bio man пишет:
Данил_123, не актуально в данной задаче использовать цикл for. while или foreach, самое то.
полностью согласен, но решил долго не думая


-----
http://mysitecost.ru
 
 Top
Мелкий Супермодератор
Отправлено: 09 Декабря, 2011 - 19:50:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Bio man пишет:
будет ли при каждой итерации выполняться ф-ция scandir?

Вызовется только 1 раз. Так что лаконично и быстро.


-----
PostgreSQL DBA
 
 Top
ikirab1
Отправлено: 10 Декабря, 2011 - 16:33:14
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




А каким образом можно сделать чтобы сценарий работал только с выбранным файлом?
Т.е. пользователь может выбрать один файл и он подключиться к сценарию а потом если он выбирает выбирает другой файл предыдущий файл отключается и подключается новый!
 
 Top
Bio man
Отправлено: 10 Декабря, 2011 - 17:54:00
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




ikirab1, а я что сделал?
 
 Top
GrishaDm
Отправлено: 16 Декабря, 2011 - 08:59:09
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Bio man пишет:
PHP:
скопировать код в буфер обмена
  1. <?
  2. echo "<form method='post'>";
  3. echo "<select name='menu' size=1>";
  4. foreach(scandir('.') as $item){
  5.         if(is_file($item)) {
  6.                 echo "<option value='$item'>$item</option>";
  7.         }
  8.        
  9. }
  10. echo "</select>
  11. <input type='submit' name='submit' value='ok' />
  12. </form>";
  13. if($_SERVER['REQUEST_METHOD'] == 'POST'){
  14.         require_once $_POST['menu'];
  15. }
  16. ?>

(Добавление)
Данил_123 пишет:
не рекомендую использовть
а зачем тогда написал раз не рекомендуешь?
(Добавление)

вопрос к профи - будет ли при каждой итерации выполняться ф-ция scandir?

Вопрос к "профи" - вот вы дали код а теперь проведите с ним следующий эксперимент - выберите директорию где более 10000 файлов и браузер Internet Explorer и запустите его. В лучшем случае из-за тега select такая страница зависнет и придётся снимать задачу. А в худшем вплоть до переустановки ОС. И вообще такое криворукое решение не достойно упоминания - надо выводить постраничным списком с навигацией и указанием сверху текущего пути без всяких select и делить на файлы и папки (папки делать, например, ссылками).
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB