2012-02-28 57 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

相關問題