Просмотр полной версии : Вывести список файлов и выбрать один
Gray_f0x
14.12.2008, 02:53
Задача :
Вывести список файлов директории, возле имени каждого файла в списке радио-кнопка, передать имя выбранного файла в обработчик.
Вот то, что вышло у меня... :
<?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 ...> а потом твои файлы и радиобоксы
Gray_f0x
14.12.2008, 04:07
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
/* файлменеджер */
$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);
?>
Вывод хтмл кода кнопок и он правильный, но все еще глючат ..
<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
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
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
Последняя версия моя (в последнем посте), у меня ничего не глючит
preda1or
14.12.2008, 04:26
я понял в чем проблема. щас
if (is_file($file)) echo "<input type=radio name=file value=".$file.">".$file." (файл,размер: ".filesize($file).")<br>\n";
<?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:29
проверил в Fifefox 3, Ie7, в обоих браузерах, если выбрать одну кнопку, а потом еще одну, то можно нажать все, а нужно чтобы выбирался один! Это радио-кнопка!
preda1or
14.12.2008, 04:31
мой пост выше посмотри)
p.s. ты просто перепутал вывод в поля name и value
Gray_f0x
14.12.2008, 04:33
ооо супер) спасибо большое)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot