|
|
|
| Скрипт выводит список файлов. Слева каждого файла надо сделать чекбокс, а потом с выбранными файлами сделать какое-нибудь действие. Если <input type="checkbox" name="name" value="value" /> то при нажатии на submit в php появляется переменная например $_POST['name'] со значением value, я прав? В данном случае чекбоксов много, и их имена неизвестны. Посоветуйте, пожалуйста. | |
|
|
|
|
|
|
|
для: opex
(16.02.2007 в 20:36)
| | А нельзя именовать чекбоксы по каому нибудь правилу?
И ещё: список чекбоксов формируется, как я понимаю, PHP-скриптом? Тогда можно где-нить ещё хранить имена... | |
|
|
|
|
|
|
|
для: Фитч
(16.02.2007 в 20:38)
| | Можно именовать по правилу. Получится туча переменных. Нельзя все чекбоксы как-нибудь в один массив загнать? Насчет именования по правилу: приведите пример, пожалуйста. как мне потом из всех этих переменных узнать, какие чекбоксы выбраны. | |
|
|
|
|
|
|
|
для: opex
(16.02.2007 в 20:36)
| | Да вы правы. Полю name передастся значение value. Тут можно выводить циклом чекбоксы с файлами и автоматически присваивать полю value какие либо значения
Например | |
|
|
|
|
|
|
|
для: Sl
(16.02.2007 в 20:42)
| | Не понял, как связать чекбоксы и имена файлов? | |
|
|
|
|
|
|
|
для: opex
(16.02.2007 в 20:46)
| | Ну например когда вы выводите файлы, нужно с ними же и выводить чекбоксы. Там же автоматически будет меняться имя каждого чекбокса для каждого файла.
Все это должно делаться в цикле. Вы список файлов каким образом выводите ? | |
|
|
|
|
|
|
|
для: Sl
(16.02.2007 в 20:51)
| |
<?php
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file !== '.' and $file !== '..')
echo $file;
}
closedir($dh);
}
}
|
| |
|
|
|
|
|
|
|
для: opex
(16.02.2007 в 21:18)
| |
<?php
$in = 0;
$iv = 0;
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
echo "<input type=checkbox name='check[$in++]' value='$iv++'>  ";
if ($file !== '.' and $file !== '..')
echo $file."<br />";
}
closedir($dh);
}
}
|
Попробуйте вот эту идею реализовать | |
|
|
|
|
|
|
|
для: Sl
(16.02.2007 в 21:29)
| | так делать нельзя ни в коем случае.
Поскольку между выводом формы и обработкой данных из нее может пройти время достаточное, чтобы список файлов изменился. | |
|
|
|
|
|
|
|
для: opex
(16.02.2007 в 20:46)
| |
<?php
if(isset($_POST['f'])&& is_array($_POST['f']))
{
foreach(glob('*') as $name) $nms[md5($name)]=$name;
foreach($_POST['f'] as $h)
if(isset($nms[$h]))
{
unlink($name=$nms[$h]);
echo "$name deleted<br/>\r\n";
}
}
echo "<form method=post>";
foreach(glob('*') as $name)
{
$h = md5($name); $n= htmlspecialchars($name);
echo "<input type=checkbox name=f[] value=$h /> $n<br/>\r\n";
}
echo "<input type=submit value=del /><form>";
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(16.02.2007 в 21:20)
| | То есть если я всем чекбоксам присвою одинаковое имя name="massiv[]", значения напишу разные (например value1, value2), то при субмите появляется $_POST['massiv'] вида
0->value1
1->value2
так? А если есть чекбокс у которого value3 и его не отметили, то он не появится в массиве? В таком случае можно в value написать имена файлов, и получится список отмеченных файлов. Только имена файлов надо записывать так, чтобы они спецсимволами (слешами, кавычками) ничего не испортили. Поправьте меня, если я не прав. | |
|
|
|
|
|
|
|
для: opex
(16.02.2007 в 20:36)
| | Я бы сделал так:
<?
<?php
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file !== '.' and $file !== '..')
echo '<input type="checkbox" name="file['.$file.']" /> '.$file;
}
closedir($dh);
}
}
?>
|
В итоге, после нажатия кнопки субмит вы имеете в скрипте массив, ключи которого это имена отмеченных файлов, а значения 'on'. | |
|
|
|
|
|
|
|
для: tAleks
(16.02.2007 в 22:47)
| | А так имя файла, содержащее какую-нибудь кавычку, апостроф или квадратную скобку, порвёт тег, как тузик тряпку.
В моем способе, кстати, тоже огрехи есть. Может, кто укажет :) | |
|
|
|