0

我正在一个项目中工作,我只想向用户显示管理员从数据库中选择的那些产品。实际上,当管理员检查或取消选中该复选框时,我想在数据库中设置批准 1 或 0。

 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,但它仍然让我对检查了哪些项目感到困惑或未选中。任何建议将不胜感激。

4

2 回答 2

0

修改复选框行以显示已检查,如果数据库中的批准 = 1...试试这个

  <input type='checkbox' name='approval' value='approval' <?php if($row["approval"]==1){ echo "checked=\"checked\"";})  ?>  id ="<? echo $cid; ?>" class="check"/>
于 2013-04-25T06:13:26.463 回答
0

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'))
于 2013-04-25T06:25:47.410 回答