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";

        }

   }
 }

?>

私のコードは正常に動作していますが、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' >";



        }
    }
  ?>
4

2 に答える 2

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 に答える