2011-08-28 25 views
2

我正在構建一個簡單的PHP文件管理器,我需要幫助獲取要刪除的文件。開啓按鈕單擊,確認並刪除

基本上,我怎麼能檢查是否.filename checkbox被選中,其中.filename是類的父<tr>,以及作爲文件名,那麼如果是這樣,當你點擊<input type="submit" name="delete" value="Delete Selected Files" />,刪除所選來自/uploads/目錄的文件。

我沒有使用任何類型的數據庫或任何東西,只是在網站上的密碼保護區。我意識到這不是最安全的做事方式。

我已經有一個腳本,填充表是這樣的:

<table> 
    <tr> 
     <td>&nbsp;</td> 
     <td>File Name:</td> 
     <td>File Size:</td> 
    </tr> 
    <tr class="filemane"> 
     <td><input type="chekbox" /></td> 
     <td><a href="/uploads/file-name.ext" target="_blank">file-name.ext</a></td> 
     <td>10</td> 
    </tr> 
</table> 
<table> 
    <tr> 
     <td><input type="submit" name="upload" value="Upload Files" /></td> 
     <td><input type="submit" name="delete" value="Delete Selected Files" /></td> 
    </tr> 
</table> 

所以我只需要知道如何檢查哪些複選框被選中,並從/uploads/目錄中刪除相關文件。

+0

3行JQuery刪除頁面上的所有文件;) – AlienWebguy

回答

2

您凸輪使用: HTML:

<input type="chekbox" name="check_files[]" value="unique_file_id1"/> 
<input type="chekbox" name="check_files[]" value="unique_file_id2"/> 

PHP:

if (!emptY($_POST['check_files'])) { 
    foreach ($_POST['check_files'] as $checked_file) { 
     if(file_exists("path" . $checked_file))) { 
      unlink("path" . $checked_file); 
     } 
     //other logic 
    } 
} 
0
<?php 

if (isset($_POST['delete'])) 
{ 
    for($i=0;$i<count($_POST['check_files']);$i++) 
    { 
     if (file_exists($_POST['check_files'][$i])) 
     { 
      unlink($_POST['check_files'][$i]); 
     } 
    } 
} 
?> 
0

也許嘗試使用JavaScript和Ajax請求:

var chkBox, destroy, fileName; 
while(chkBox = document.querySelector('.filename input:checked')){ 
    fileName = chkBox.parentNode.parentNode.querySelector('a').href; 
    alert('Removing file: ' + fileName); // send ajax request etc 
    destroy = chkBox.parentNode.parentNode; 
    destroy.parentNode.removeChild(destroy); 
} 

工作例如:http://jsfiddle.net/E5WWN/3/