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

Discussion in 'PHP' started by Gray_f0x, 14 Dec 2008.

  1. Gray_f0x

    Gray_f0x Elder - Старейшина

    Joined:
    31 May 2007
    Messages:
    161
    Likes Received:
    84
    Reputations:
    12
    Задача :

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

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

    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
     
    #1 Gray_f0x, 14 Dec 2008
    Last edited: 14 Dec 2008
  2. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    получается ты форму выводишь по N раз(N-число файлов). Выведи в начале <form ...> а потом твои файлы и радиобоксы
     
    3 people like this.
  3. Gray_f0x

    Gray_f0x Elder - Старейшина

    Joined:
    31 May 2007
    Messages:
    161
    Likes Received:
    84
    Reputations:
    12
    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>" ;

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

    preda1or Member

    Joined:
    27 Oct 2008
    Messages:
    167
    Likes Received:
    96
    Reputations:
    6
    deleted
     
    1 person likes this.
  5. Gray_f0x

    Gray_f0x Elder - Старейшина

    Joined:
    31 May 2007
    Messages:
    161
    Likes Received:
    84
    Reputations:
    12
    По прежнему глючат кнопки.

    Сделал так :

    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>
     
    #5 Gray_f0x, 14 Dec 2008
    Last edited: 14 Dec 2008
  6. preda1or

    preda1or Member

    Joined:
    27 Oct 2008
    Messages:
    167
    Likes Received:
    96
    Reputations:
    6
    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>" 

    ?> 
     
    #6 preda1or, 14 Dec 2008
    Last edited: 14 Dec 2008
  7. Gray_f0x

    Gray_f0x Elder - Старейшина

    Joined:
    31 May 2007
    Messages:
    161
    Likes Received:
    84
    Reputations:
    12
    В твоем варианте список файлов не показывается
     
  8. preda1or

    preda1or Member

    Joined:
    27 Oct 2008
    Messages:
    167
    Likes Received:
    96
    Reputations:
    6
    ща сек, я подправил скрипт. посмотри
    ВОТ
    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>"


    ?>  
     
    #8 preda1or, 14 Dec 2008
    Last edited: 14 Dec 2008
  9. Gray_f0x

    Gray_f0x Elder - Старейшина

    Joined:
    31 May 2007
    Messages:
    161
    Likes Received:
    84
    Reputations:
    12
    Глючат кнопки... =\\

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

    preda1or Member

    Joined:
    27 Oct 2008
    Messages:
    167
    Likes Received:
    96
    Reputations:
    6
    Последняя версия моя (в последнем посте), у меня ничего не глючит
     
  11. preda1or

    preda1or Member

    Joined:
    27 Oct 2008
    Messages:
    167
    Likes Received:
    96
    Reputations:
    6
    я понял в чем проблема. щас

    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>"


    ?> 
     
    #11 preda1or, 14 Dec 2008
    Last edited: 14 Dec 2008
  12. Gray_f0x

    Gray_f0x Elder - Старейшина

    Joined:
    31 May 2007
    Messages:
    161
    Likes Received:
    84
    Reputations:
    12
    проверил в Fifefox 3, Ie7, в обоих браузерах, если выбрать одну кнопку, а потом еще одну, то можно нажать все, а нужно чтобы выбирался один! Это радио-кнопка!
     
  13. preda1or

    preda1or Member

    Joined:
    27 Oct 2008
    Messages:
    167
    Likes Received:
    96
    Reputations:
    6
    мой пост выше посмотри)
    p.s. ты просто перепутал вывод в поля name и value
     
    #13 preda1or, 14 Dec 2008
    Last edited: 14 Dec 2008
    1 person likes this.
  14. Gray_f0x

    Gray_f0x Elder - Старейшина

    Joined:
    31 May 2007
    Messages:
    161
    Likes Received:
    84
    Reputations:
    12
    ооо супер) спасибо большое)