设置批准管理与复选框使用php,jquery和ajax


Set approval for admin with checkbox using php,jquery and ajax

我在一个项目中工作,我想只向用户显示这些产品,这些产品是由数据库管理员选择的。实际上,我想在数据库中设置批准1或0,当admin选中或未选中该复选框时。

 jobs.php
  $(document).ready(function(){
   $('input.check').click(function(){
     if($("input.check").is(':checked'))
     {
         $id = $(this).attr("id");
         $.post("handle.php",{action:"checked",id:$id},function(data){
          alert("Peoduct is set to display...");
         });
     }
     else
     {
       alert("unchecked");
        $id = $(this).attr("id");
         $.post("handle.php",{action:"unchecked",id:$id},function(data){
          alert("Peoduct is un-set to display...");
         });
     }
       });
    });
    <?php
        $dbqry = mysql_query("select * from job_category");
        echo "<table width='50%', border='2'>
        <tr>
        <th>Catergory ID</th>
        <th>Category Name</th>
        <th>Remove</th>
        <th>Update</th>
        <th>Approval</th>           
        </tr>";
        if($dbqry)
        {
            while($row = mysql_fetch_array($dbqry))
            {
                echo "<tr>";
                echo "<td align='center'>" . $row['c_id'] . "</td>";
                echo "<td align='center'>" . $row['cat_name'] ."</td>";
                $cid = $row['c_id'];
                $aprv = $row['approval'];
                echo "<td align='center'><a href='remove.php?action=cat_remove&cid=$cid'>Remove</a></td>";
                echo "<td align='center'>
                <a href='Update-form.php?action=cat_update&cid=$cid'>Update</a></td>";
                ?>
                <td align="center">
                       <input type='checkbox' name='approval' value='approval'   id ="<? echo $cid; ?>" class="check"/>
                </td>
                </tr>
                <?
            }
            echo "</table>";
            echo '<br/>';
            echo "<a href='add.php?action=cat_add'>Add New Category</a>";
        }
        else
        {
            die(mysql_error());
        }
    ?>`
   handle.php
  `<?php
      include 'include/connection.php';
      $action = $_POST['action'];
      $id = $_POST['id'];
      //echo $action;
      if($action == "checked")
      {
         $query = "update job_category set approval=1 where c_id=$id";
     $result = mysql_query($query);
     if(!$result)
     {
       echo die(mysql_error());
     }
      }
      else if($action == "unchecked")
       {
         $query = "update job_category set approval=0 where c_id=$id";
     $result = mysql_query($query);
     if(!$result)
     {
        echo die(mysql_error());
      }
    }
 ?>`

它的工作,但当我刷新页面或选择URL并按enter键,然后所有选中的数据出现未检查,即使之后它没有改变批准值从1到0在数据库中,但它仍然让我困惑哪些项目被选中或未选中。

modify checkbox line to show checked if approval=1 in database…试试这个

  <input type='checkbox' name='approval' value='approval' <?php if($row["approval"]==1){ echo "checked='"checked'"";})  ?>  id ="<? echo $cid; ?>" class="check"/>

html

    <input type='checkbox' name='approval' value='approval' <?php echo $row["approval"]?"checked='"checked'"":'';?>  id ="<? echo $cid; ?>" class="check"/>

然后添加js

$(function(){
    $('input[type=checkbox]').each(function(){
        if($(this).attr('checked') && $(this).attr('checked')=='checked'){
        $(this).attr('checked', true);
        }else{
        $(this).attr('checked', false);
        }
    })
})

if($("input.check").is(':checked'))
to
 if($(this).is(':checked'))