2017-03-31 90 views
0

我目前正在使用PHP的目錄瀏覽器工作,並且我偶然發現了一個障礙。我希望能夠讓用戶使用複選框選擇文件,然後在他們單擊按鈕時將其刪除,但是我不確定如何去解決這個問題,這是因爲一般來說不熟悉PHP和Web開發。這是到目前爲止我的代碼對用戶界面:如何使用複選框從網格中選擇和刪除文件

      <a href="#" onClick="rec('deletestuff')"> 
          <span title="Delete Selected" class="fa fa-trash fa-lg"></span> 
          <!--Delete Selected--> 
         </a> 
        </li> 
       </ul> 
       <script type="text/javascript"> 
        function rec(deletestuff) { 
         $('#newCode').load('delete_selected.php' deletestuff); 
        } 
       </script> 
<span class="selected col-md-2 col-sm-2 col-xs-1 text-right"> 
           <form method="get"> 
            <input type="checkbox" name="selected[]" value="'.$file.'"> 
           </form> 

          </span> 

然後在一個單獨的PHP文件,我寫了這個算法來處理刪除功能

<?php 

foreach($_POST['selected[]'] as $file) { 
    if(file_exists($lister->getDirectoryPath() . $file)) { 
     unlink($lister->getDirectoryPath() . $file); 
     echo "<script type='text/javascript'>alert('Files deleted 
successfully.');</script>"; 
    } 
    elseif(is_dir($file)) { 
     rmdir($file); 
     echo "<script type='text/javascript'>alert('Files deleted successfully.');</script>"; 
    } 
} 

?> 

我敢肯定,我沒有執行正確地處理幾種不同類型的腳本(特別是將javascript發送給php的信息),但是我需要一些指針來指出我在這裏失敗的原因以便糾正它。如果需要,我可以共享更多的源代碼,因爲它基於在此處找到的PHP DirectoryLister:https://github.com/DirectoryLister/DirectoryLister

謝謝!

回答

1

首先,確保您發送正確的數據到您的PHP腳本。目前,點擊時,您將調用函數'rec'並將字符串'deletestuff'傳遞給它。然後,您將該字符串傳遞給您的腳本,並嘗試引用您從未傳遞的腳本中所選複選框的列表。

至於將選定複選框的列表傳遞給您的腳本,有很多方法可以做到這一點。既然你已經使用jQuery,我會建議通過迭代所有的複選框元素

$('input[type=checkbox]').each(function() { 
    if (this.checked) { 
     toDelete.push(this.id); 
    } 
}); 

看他們是否有屬性檢查爲真,從這些建築的「toDelete」列表,然後通過該列表通過你的功能到腳本。