Задача : Вывести список файлов директории, возле имени каждого файла в списке радио-кнопка, передать имя выбранного файла в обработчик. Вот то, что вышло у меня... : 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
получается ты форму выводишь по N раз(N-число файлов). Выведи в начале <form ...> а потом твои файлы и радиобоксы
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>" ; Сделал вот так... Все равно не работает.. И радио-кнопки глючат... Возможно, нужно использовать другую функцию ?
По прежнему глючат кнопки. Сделал так : 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>
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>" ; ?>
ща сек, я подправил скрипт. посмотри ВОТ 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>"; ?>
я понял в чем проблема. щас 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>"; ?>
проверил в Fifefox 3, Ie7, в обоих браузерах, если выбрать одну кнопку, а потом еще одну, то можно нажать все, а нужно чтобы выбирался один! Это радио-кнопка!