Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Вывести список файлов и выбрать один (https://forum.antichat.xyz/showthread.php?t=96297)

Gray_f0x 14.12.2008 02:53

Вывести список файлов и выбрать один
 
Задача :

Вывести список файлов директории, возле имени каждого файла в списке радио-кнопка, передать имя выбранного файла в обработчик.

Вот то, что вышло у меня... :

PHP код:

<?php
/* файлменеджер */
$dir opendir("./");

chdir("./");
echo 
"<html><head><title>Файлменеджер</title></head><body>";
echo 
"<h1>Оглавление каталога</h1><p>";
echo 
"<table width= 100%>";

while (
$d=readdir($dir))
{
    
$file basename($d);
    echo 
$file;
    
//$file = is_file($d);
    
echo $file;
    echo 
"<tr><td>";
    
    if (
is_dir($d)) echo "$d</td><td>Каталог</td>";
    if (
is_file($d)) echo "<form action='edit.php' method='post'><input type=radio name=".$file." value=file>$d</td><td>".filesize($d)."</td>";
    
    echo 
"<tr>";
    
}

echo 
"<input type=submit name=Edit value=Edit></form></table></body></html>" ;

closedir($dir);
?>

В чем проблема :

список файлов скрипт выводит, но при выборе файла, значения радио-кнопок совпадают и радио-кнопки не уникальны! И при передаче в обработчик, тот получает пустое значение, а принимает через $HTTP_POST_VARS

scrat 14.12.2008 03:10

получается ты форму выводишь по N раз(N-число файлов). Выведи в начале <form ...> а потом твои файлы и радиобоксы

Gray_f0x 14.12.2008 04:07

PHP код:

echo "<table width= 100%><form action='edit.php' method='post'>";

while (
$d=readdir($dir))
{
    
$file basename($d);
    echo 
$file;
    
//$file = is_file($d);
    
echo $file;
    echo 
"<tr><td>";
    
    if (
is_dir($d)) echo "$d</td><td>Каталог</td>";
    if (
is_file($d)) echo "<input type=radio name=".$file." value=file>$d</td><td>".filesize($d)."</td>";
    
    echo 
"<tr>";
    
}

echo 
"<input type=submit name=Edit value=Edit></form></table></body></html>" 


Сделал вот так... Все равно не работает.. И радио-кнопки глючат... Возможно, нужно использовать другую функцию ?

preda1or 14.12.2008 04:08

deleted

Gray_f0x 14.12.2008 04:10

По прежнему глючат кнопки.

Сделал так :

PHP код:

<?php 
/* файлменеджер */
$dir opendir("./");

chdir("./");
echo 
"<html><head><title>Файлменеджер</title></head><body>";
echo 
"<h1>Оглавление каталога</h1><p>";
echo 
"<table width= 100%><form action='edit.php' method='post'>";

while (
$d=readdir($dir))
{
    
$file basename($d);
    echo 
$file;
    
//$file = is_file($d);
    
echo $file;
    echo 
"<tr><td>";
    
    if (
is_dir($d)) echo "$d</td><td>Каталог</td>";
    if (
is_file($d)) echo "<input type=radio name=".$file." value=".$file.">$d</td><td>".filesize($d)."</td>";
    
    echo 
"<tr>";
    
}

echo 
"<input type=submit name=Edit value=Edit></form></table></body></html>" ;

closedir($dir);
?>

Вывод хтмл кода кнопок и он правильный, но все еще глючат ..

PHP код:

<input type=radio name=config.php value=config.php>config.php</td><td>0</td><tr>edit.phpedit.php<tr><td><input type=radio name=edit.php value=edit.php


preda1or 14.12.2008 04:13

PHP код:

<?php 

echo "<html><head><title>Файлменеджер</title></head><body>";
echo 
"<h1>Оглавление каталога</h1><p>";
echo 
"<table width= 100%><form action='edit.php' method='post'>";

if (
$handle opendir('.')) {
    while (
false !== ($file readdir($handle))) { 
        if (
$file != "." && $file != "..") { 
            if (
is_dir($file)) echo $file."</td><td>Каталог</td>";
             if (
is_file($file)) echo "<input type=radio name=".$file." value=file>".$file." (Размер:".filesize($file).")</td>\n<br>";
        } 
    }
    
closedir($handle); 
}

echo 
"<input type=submit name=Edit value=Edit></form></table></body></html>" 

?>


Gray_f0x 14.12.2008 04:15

В твоем варианте список файлов не показывается

preda1or 14.12.2008 04:16

ща сек, я подправил скрипт. посмотри
ВОТ
PHP код:

<?php 

echo "<html>
<head><title>Файлменеджер</title></head>
<body>
<h1>Оглавление каталога</h1><p>
<form action='edit.php' method='post'>\n"
;

if (
$handle opendir('.')) {
    while (
false !== ($file readdir($handle))) { 
        if (
$file != "." && $file != "..") { 
            if (
is_dir($file)) echo $file." (каталог)<br>\n";
             if (
is_file($file)) echo "<input type=radio name=".$file." value=file>".$file." (файл,размер: ".filesize($file).")<br>\n";
        } 
    }
    
closedir($handle); 
}

echo 
"<input type=submit name=edit value=edit>
</form>
</body>
</html>"


?>


Gray_f0x 14.12.2008 04:19

Глючат кнопки... =\\

Может скрипт полностью переписать? Идея с циклом может и решит проблему.

preda1or 14.12.2008 04:23

Последняя версия моя (в последнем посте), у меня ничего не глючит


Время: 11:37