2011-12-15 132 views
0

我的实现似乎不工作。你能指出什么可能是问题或指向我更好的解决方案吗?当我检查复选框并点击删除按钮时,它似乎没有做任何事......请帮助我。PHP复选框多删除

<div id="container" class="page"> 
    <img id="disclaimer" class="page" src="images/DISCLAIMER.png" alt="" /> 
    <img id="logo" class="page" src="images/MI-LOGO.png" alt="" /> 
    <div id="postItDiv" class="page"> 
     <?php 
     $cxn = mysqli_connect('localhost', 'root', 'root', 'TimePost') or die(mysqli_error()); 
     $query = "SELECT PostID, ClientName, VideoName, PostTime, Post, Date FROM tblTimePosts"; 
     $result = mysqli_query($cxn, $query) or die(mysqli_error()); 

     while($row = mysqli_fetch_assoc($result)) { 
      $post = $row['Post']; 
      $time = $row['PostTime']; 
      $idNo = $row['PostID']; 
      $postColor = rand(1, 4); 
      echo '<div id="post1"><p class="postParagraph">Post ID No.' . $idNo . '<br />' . $post . ' at ' . $time . ' seconds mark</p><div class="close"><form method="POST" action="videoJudge.php"><input type="checkbox" name="checkbox[]" id="checkbox[]" value="' . $idNo . '" /></form></div></div>'; 
     } 

     if($_SERVER['REQUEST_METHOD'] == "POST" && $_POST['btnPost']) { 
      $postColors = rand(1, 4); 
      $toPost = $_POST['textPost']; 
      $date = date("y-m-d"); 
      $postTime = $_POST['display']; 
      $postTime = floor($postTime); 
      $insertPostQuery = "INSERT INTO tblTimePosts VALUES('','Mimagazine Asia','Chelsea','$postTime','$toPost','$date')"; 
      $query3 = "SELECT PostID FROM tblTimePosts"; 

      $result = mysqli_query($cxn, $insertPostQuery) or die(mysqli_error()); 
      $result3 = mysqli_query($cxn, $query3) or die(mysqli_error()); 
      if($result > 0) { 
       while($row = mysqli_fetch_assoc($result3)) { 
        $idNo2 = $row['PostID']; 
       } 
       echo '<div id="post1"><p class="postParagraph">Post ID No.' . $idNo2 . '<br />' . $toPost . ' at ' . $postTime . ' seconds mark</p><div class="close"><form method="POST" action="videoJudge.php"><input type="checkbox" name="checkbox[]" id="checkbox[]" value="' . $idNo2 . '" /></form></div></div>'; 
      } 
      else 
       echo "Add Failed"; 
     } 

     /* if($_POST['chkDelete']) { 
      for($i=0;$i<5;$i++){ 
       $del_id = $checkDelete[$i]; 
       $sql = "DELETE FROM $tblTimePosts WHERE PostID='$del_id'"; 
       $resulta = mysqli_query($cxn,$sql); 
      } 
     } */ 

     if($_POST['btnDelete']) { // from button name="delete" 
      /* $checkbox = $_POST['checkbox']; //from name="checkbox[]" 
      $countCheck = count($_POST['checkbox']); 
      echo $countCheck; 
      for($i=0;$i<$countCheck;$i++){ 
       $del_id = $checkbox[$i]; 
       $sql = "DELETE FROM tblTimePosts WHERE PostID=".$del_id.""; 
       $resulta = mysqli_query($cxn,$sql) or die(mysqli_error()); 
      } */ 

      $tbl_name = 'tblTimePosts'; 
      foreach($_POST['checkbox'] as $id => $value) { 
       $sql = 'DELETE FROM `' . $tbl_name . '` WHERE `PostID`=' . (int) $id; 
       mysqli_query($cxn, $sql); 
      } 
      header('Location: videoJudge.php'); 
     } 
     ?> 
    </div> 
    <div id="videoContainer" class="page"> 
     <video id="video" poster="images/cover.png" controls> 
      <source src="video/animationTest.m4v" /> 
     </video> 
    </div> 
    <div id="etc" class="page"> 
     <form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST"> 
      <textarea name="textPost" id="textPost"> 
      </textarea> 
      <input type="submit" name="btnPost" id="btnPost" value="Post" /> 
      <div id="tae"> 
       <input type="text" name="display" id="display" value="0" /> 
      </div> 
     </form> 
    </div> 
    <div id="delButtonDiv"> 
     <form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST"> 
      <input type="submit" value="Delete" name="btnDelete" /> 
     </form> 
    </div> 
</div> 

这是我的代码现在后,所有的评论,但仍然没有工作。 :(

<?php 
      $cxn = mysqli_connect('localhost','root','root','TimePost') or die(mysqli_error()); 
      $query = "SELECT PostID, ClientName, VideoName, PostTime, Post, Date FROM tblTimePosts"; 
      $result = mysqli_query($cxn,$query) or die(mysqli_error()); 
      while($row = mysqli_fetch_assoc($result)) { 
       $post = $row['Post']; 
       $time = $row['PostTime']; 
       $idNo = $row['PostID']; 
       $postColor = rand(1,4); 
       echo '<div id="post1"><p class="postParagraph">Post ID No.'.$idNo.'<br />'.$post.' at '.$time.' seconds mark</p><div class="close"><form method="POST" action="videoJudge.php"><input type="checkbox" name="checkbox[]" id="checkbox[]" value="'.$idNo.'" /></form>  
       </div></div>'; 
      } 
      if ($_SERVER['REQUEST_METHOD'] == "POST" && $_POST['btnPost']) { 
       $toPost = $_POST['textPost']; 
       $date = date("y-m-d"); 
       $postTime = $_POST['display']; 
       $postTime = floor($postTime); 
       $insertPostQuery = "INSERT INTO tblTimePosts VALUES('','Mimagazine Asia','Chelsea','$postTime','$toPost','$date')"; 
       $query3 = "SELECT PostID FROM tblTimePosts"; 

       $result = mysqli_query($cxn, $insertPostQuery) or die(mysqli_error()); 
       $result3 = mysqli_query($cxn, $query3) or die(mysqli_error()); 
       if ($result > 0) { 
        while($row = mysqli_fetch_assoc($result3)) { 
         $idNo2 = $row['PostID']; 
        } 
        echo '<div id="post1"><p class="postParagraph">Post ID No.'.$idNo2.'<br />'.$toPost.' at '.$postTime.' seconds mark</p><div class="close"><form method="POST" action="videoJudge.php"><input type="checkbox" name="checkbox[]" id="checkbox[]" value="'.$idNo2.'" 
        /></form></div></div>'; 
       } 
       else 
        echo "Add Failed"; 
      } 
      if($_POST['btnDelete'] == "Delete") 
      { 
       $tbl_name = 'tblTimePosts'; 
        foreach ($_POST['checkbox'] as $id => $value) 
        { 
         $sql = 'DELETE FROM `'.$tbl_name.'` WHERE `PostID`='.(int)$id; 
         mysqli_query($cxn,$sql); 
        } 
        header('Location: videoJudge.php'); 
      } 
     ?> 
     </div> 
     <div id="videoContainer" class="page"> 
      <video id="video" poster="images/cover.png" controls> 
       <source src="video/animationTest.m4v" /> 
      </video> 
     </div> 
     <div id="etc" class="page"> 
      <form action="<?php echo $_SERVER['PHP_SELF']?>" method="POST"> 
        <textarea name="textPost" id="textPost"> 
        </textarea> 
         <input type="submit" name="btnPost" id="btnPost" value="Post" /> 
         <div id="tae"> 
          <input type="text" name="display" id="display" value="0" /> 
         </div> 

       <div id="delButtonDiv"> 
       <input type="submit" value="Delete" name="btnDelete" /> 
       </div> 
      </form> 
     </div> 

回答

2

这样做应该解决的问题,请尝试:

<div id="etc" class="page"> 
    <form action="<?php $_SERVER['PHP_SELF']?>" method="POST"> 
     <textarea name="textPost" id="textPost"></textarea> 
     <input type="submit" name="btnPost" id="btnPost" value="Post" /> 
     <div id="tae"> 
      <input type="text" name="display" id="display" value="0" /> 
     </div> 

     <!-- END FORM REMOVED HERE --> 

     <!-- FORM REMOVED HERE --> 

    <div id="delButtonDiv"> <input type="submit" value="Delete" name="btnDelete" /> </div> 
    </form> 
</div> 

将帖子

有两个表单中的提交按钮后,那么你需要知道你正在采取什么行动,POST或删除,对吗?那么您可以在自己的PHP脚本创建一个基本的控制器到您的文章,这样的事情:

这里是形式 - ><form action="<?php $_SERVER['PHP_SELF']?>" method="POST">

和这里的提交按钮

<input type="submit" name="btnPost" id="btnPost" value="Post" /> 
<input type="submit" value="Delete" name="btnDelete" /> 

$_SERVER['PHP_SELF']告诉您它将表单数据发送给自己,如果是这样,那么做这样的事情在开始您的脚本:

if ($_POST[btnPost] == "Post") 
// do some action to post the data 

if ($_POST[btnDelete] == "Delete") 
// do some action to delete the data 

明确了吗?

0

您已经使用两种形式,即提交按钮是属于第二种形式。
当您按下提交按钮,它只能提交一个空的形式。
移动提交按钮进入第一种形式要解决这个问题。

你的

<form action="<?php $_SERVER['PHP_SELF']?>" method="POST"> 
.. 
... 
<form action="<?php $_SERVER['PHP_SELF']?>" method="POST"> 

两行删除第二个,和

<form action="<?php $_SERVER['PHP_SELF']?>" method="POST"> 
       ^missing an echo 

如果要提交回相同的URL,则不需要设置表单操作。

+0

你是什么意思两种形式?我应该在哪里放置我的删除代码块? – 2011-12-15 15:11:45

+0

什么都没有发生先生。仍然没有任何反应:( – 2011-12-15 15:21:24

0

删除按钮必须与复选框位于您要提交到的相同表单中。

<form method="POST" action="videoJudge.php" > 
           ^______ url of the form you want to submit to. Possibly <?php echo $_SERVER['PHP_SELF']?> 

<input type="checkbox" name="checkbox[]" id="checkbox[]" value="'.$idNo.'" /> 
<input type="submit" value="Delete" name="btnDelete" /> 
</form>