2013-04-25 60 views
0

我正在一個項目中,我只想顯示那些由管理員從數據庫中選擇的用戶。實際上,我想在管理員選中或取消選中該複選框時設置數據庫中的審批1或0。使用php,jquery和ajax爲複選框設置批准

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()); 
     } 
    } 
?>` 

其工作,但是當我刷新頁面或seletc的URL,然後按Enter,然後所有的檢查數據出現即使它不認可的價值從1數據庫更改爲0不加以控制,但仍使我迷惑哪些項目被選中或未選中。任何建議將不勝感激。

回答

0

修改複選框線來表示檢查是否批准= 1數據庫...試試這個

<input type='checkbox' name='approval' value='approval' <?php if($row["approval"]==1){ echo "checked=\"checked\"";}) ?> id ="<? echo $cid; ?>" class="check"/> 
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')) 
+0

謝謝JOE LEE給我寶貴的時間。但它仍然不起作用。它總是運行「if語句」,即使我們檢查或取消選中該複選框。現在我只是混淆瞭如何取消複選框後,將數據庫中的批准值從1更改爲0。 – user2314433 2013-04-25 07:39:04

+0

對不起$('checkbox')是$('input [type = checkbox]') – 2013-04-25 07:42:50

+0

$('input [type = checkbox]')不是問題。它也使用$('input.check')。問題是當我點擊複選框每次它只運行if部分。它不執行jquery中的else部分。我也想運行其他部分becouse在數據庫中用0代替審批值。 – user2314433 2013-04-25 10:02:29