2012-02-28 61 views
1

这是代码。多余的复选框?不知道他们来自哪里

<?php 
$dirname = 'music'; 

$dir = new DirectoryIterator($dirname); 

foreach ($dir as $path => $splFileInfo) 
{ 
if ($splFileInfo->isDir()) 
    continue; 


$output = explode(' ', $splFileInfo, 5); 
echo "<form>"; 
?><input type="checkbox" name="<?php echo $output[0] ?>" /><?php echo "$output[0]"; ?> 
<input type="checkbox" name="<?php echo $output[1] ?>" /><?php echo "$output[1]"; ?> 
<input type="checkbox" name="<?php echo $output[2] ?>" /><?php echo "$output[2]"; ?> 
<?php echo "</form>"; 

} 
?> 

这会导致在编码的复选框之后会出现两个额外的复选框。例如:image since it won't let me post images yet.

+0

看到没有什么奇怪的,没有什么,你没有告诉脚本做。 – yoda 2012-02-28 23:05:11

+0

你有没有这个设置来忽略目录“。”和“..”? – MyStream 2012-02-28 23:05:14

+1

似乎你的循环回声3复选框在每次单独的形式(并没有在该数组中设置键“1”和“2”)。那么,为什么这不是预期的行为? – animuson 2012-02-28 23:05:18

回答

0

我想你正在尝试在循环中做一些事情,应该在循环之外完成。我期望确切的输出基于代码,所以让我在这里采取一个修复刺:

<form action="" method="post"> 
<?php 
$dirname = 'music'; 
$dir  = new DirectoryIterator($dirname); 
foreach ($dir as $path => $splFileInfo) 
{ 
    if ($splFileInfo->isFile()) 
    { 
     $filename = $splFileInfo->getFilename(); 
     ?> 
     <input type="checkbox" name="<?= $filename; ?>" /><label><?= $filename; ?></label><br /> 
     <?php 
    } 
} 
?> 
</form> 
+0

这工作!感谢您的快速回复! – Supernova1992 2012-02-28 23:17:31

相关问题