0

实际上我对 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";

        }

   }
 }

?>

我的代码工作正常,但如果我使用 NOT IN 代替 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' >";



        }
    }
  ?>
4

2 回答 2

0

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

我建议,您在提交表单时删除您想要的任何内容,如果您不知道该怎么做,我可以告诉您是否发布了 html 部分。

我还建议您从 Internet 上的课程中学习 PHP,这样您就可以了解一些标准并获得一些好的实践。(Youtube 或 Lynda.com)

于 2013-07-25T10:23:49.427 回答
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...";
  }
于 2014-02-26T09:18:38.127 回答