如果取消选中我的SQL表中的复选框删除行

时间:2013-07-25 10:09:32

标签: php

其实我是非常新的php ..我有一个任务,从数据库中选择记录作为复选框选中。当我取消选中一个复选框时,它应该从我的数据库中删除该特定记录..

我的代码是

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

          $qun1=$_POST['question1'];
      //DB connection 
            $CON=mysql_connect("localhost","root","");
             mysql_select_db("Dbname");


         if($qun1!=0 && $test!=0)
           {
              foreach($qun1 as $qunestion)
             {
              echo $question;   //this is for testing 

               $query=mysql_query("delete from test_question where test_questions_id='$test' AND question_id  IN ('$question') " ) or die(mysql_error());
            }

         if($query)
         { 
             echo "success";
         }
       else
        {
         echo "No";

        }

   }
 }

?>

我的代码工作正常但是如果我在IN的位置使用NOT IN它不工作..为什么?如果取消选中记录它应该删除..我已经从数据库检索记录作为检查字段..

我的HTML标记:

     <script> 
      function fun2(ts)
       {
         $.post("ajax2.php",{qs:ts},function(data) 
         { 
           document.getElementById('div1').innerHTML=data 
          }) 

       }  
     </script> 
    <form action="somepage.php" method="post"> 
     //dynamic selection test code 
    <select name="test" id="test" onChange="fun2(this.value);">     
    <option value="">Select Test</option> </select> 
      <div id="div1" > </div>
    <input type="submit" name="delete" value="Delete" >
  </from>

我的ajax代码:

      <?php

        $qs=$_REQUEST['qs'];

        mysql_connect("localhost","root","");
        mysql_select_db("advancedge");

       $sql=mysql_query("select question_id  from test_question where test_questions_id='$qs'");

    if($sql)
      {
       while($rec=mysql_fetch_row($sql))
       {
         echo "<input type='checkbox' name='question1[]' value='$rec[0]' checked='checked' >";



        }
    }
  ?>

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望在取消选中该项目后立即删除?要检查是否取消选中复选框,您必须使用javascript。 PHP在服务器上运行,而不是在客户端运行(你可以使用ajax,但我建议不要这样做)。

我建议您在表单提交时删除任何内容,如果您不知道如何操作,我可以告诉您是否发布了html部分。

我还建议你从互联网上的课程学习PHP,这样你就会了解一些标准并获得一些好的做法。 (Youtube或Lynda.com)

答案 1 :(得分:0)

这是一篇旧帖子,但如果有人在这里结束 - 这可能会解决问题:

<?php
  echo "<form action='' method='post'>";

  echo "<input type='checkbox' id='chk_1' name='chk_1' value='First' />chk 1 </br>";
  echo "<input type='checkbox' id='chk_2' name='chk_2' value='Second' />chk 2 </br>";

  echo "<input type='submit' />";
  echo "</form>";

  $check = array();

  // Set all checkboxes to 0 if unchecked
  for($i = 1; $i<=2; $i++) {
      $check["chk_$i"] = isset($_POST["chk_$i"]) ? 1 : 0;
   }

  // Output of the array  
  echo '<pre>';
  var_export($check);         
  echo '</pre>';

代码会将所有未选中的复选框设置为0。 然后你必须使用这样的东西来处理它:

<?php
  if($_GET['chk_1'] == 0) {
    $sql = "DELETE FROM mytable WHERE...";
  }