2016-07-27 77 views
2

所以我一直在尋找一些使用多個複選框作爲輸入的資源。我正在構建一個PM系統,並希望用戶能夠檢查任何消息,然後使用按鈕刪除它們。如何使用複選框刪除多個條目? (PHP)

的問題是,每當我檢查過的任何消息(S):

答:你必須點擊兩次刪除按鈕。 B:只有列表中的第一條消息被刪除。

按鈕組:

<form method="post" 
    <div class="button-group"> 
     <button type="submit" name="delete" class="delete button inbox">Delete</button> 
     <button type="submit" name="mark" class="mark button inbox">Mark as Read</button> 
    </div> 

上表中的行之後:

<?php 
    while ($row = mysqli_fetch_array($result)){?> 
     <tr> 
      <td><?php echo $row['PM_User1ID'];?></td> 
      <td><?php echo $row['PM_User2ID'];?></td> 
      <td><?php echo $row['PM_Subject'];?></td> 
      <td><?php echo $row['PM_Timestamp'];?></td> 
      <td> 
       <label> 
        <input type="checkbox" name="check_list[]" value="<?php echo $row['PMID'];?>"><?php echo $row['PMID'];?> 
       </label> 
       </form> 
      </td> 
      <?php echo '<td><a name="'.$row['PMID'].'"href = "?link='.$row['PMID'].'">Reply</a></td>'; ?> 
     </tr> 
    <?php } ?> 

最後提交帖子:

<?php 
     if (isset ($_POST['delete'])){ 

      if(!empty($_POST['check_list'])){ 

       foreach($_POST['check_list'] as $selected){ 

        $pmDelete = "DELETE FROM pm WHERE PMID = $selected"; 
        $deletePM = $con->query($pmDelete); 

       } 
      } 
     } 
    ?> 

PM Page

GIF of issue

+2

'

'。 –

+1

你很容易受到[sql注入攻擊](http://bobby-tables.com)的影響。考慮一下,如果有人通過'PMID'作爲刪除的值會發生什麼 - 繁榮會走到你的整個桌子。 –

+0

@MarcB我意識到這一點,我正在研究它。 –

回答

3

事實證明(與評論中的OP交談),複選框的empty()功能需要爲isset()

然後,爲了顯示(新)結果,需要(頭部)重定向(成功刪除後)。

參考文獻:

你也應該考慮使用一個事先準備好的聲明:爲了防止AG


腳註:

正如我也提到過,<form>不能成爲<table>孩子和<form method="post"這將導致混亂失蹤>

+0

現在我可以去做晚飯了;-) –