使用ajax选中复选框时更新查询

时间:2018-02-14 10:19:47

标签: javascript php jquery mysql ajax

我有一个复选框。 如果我选中或取消选中该复选框,则应使用Ajax调用运行更新查询。

如果勾选复选框,则应更新1,如果取消选中,则应更新0。  但它没有用。

复选框是:

<input type="checkbox" id="test_done" value="<?php echo $row1['id']; ?>" <?php if(($row1['test_done'])=='1') echo "checked='checked'"; ?> data-toggle="checkbox">

以上$ row1 [&#39; id&#39;]和$ row1 [&#39; test_done&#39;]是列名,来自其他选择查询。

Ajax是:

<script type="text/javascript">
  $(document).ready(function(){
    $("#test_done").click(function(){    
    var val = $(this).val();
         if($(this).is(':checked')){
         $.ajax({ type: "POST", 
         url: "test_done.php", 
         data: {val:val,apply:'1'} 

         });
         }
         else
         {
         $.ajax({ type: "POST", 
         url: "test_done.php", 
         data: {val:val,apply:'0'} 

         });

         }
      });
   });
 </script>

test_done.php是:

include_once("connection.php");
if($_POST['apply']=='1')
{
$val = $_POST['val'];   
 mysql_query("update patient_package_details set test_done='1' where id='$val'") or die(mysql_error());
}
else
{
$val = $_POST['val'];   
mysql_query("update patient_package_details set test_done='0' where id='$val'") or die(mysql_error());
}

1 个答案:

答案 0 :(得分:3)

您可以使用change事件代替click事件复选框。检查复选框是否已选中,然后在php端发送1,否则为0.因为我们发送两个值,所以您将使用post获得值。您无需检查$_POST["apply"]的值。我已设置apply变量的值,因此只能使用一个查询。

$("input:checkbox").on("change", function () {
    var val = $(this).val();
    var apply = $(this).is(':checked') ? 1 : 0;
    $.ajax({type: "POST",
        url: "test_done.php",
        data: {val: val, apply: apply}
    });
});

<强> test_done.php

include_once("connection.php");
$val = $_POST['val'];   
$apply = $_POST['apply'];   
mysql_query("update patient_package_details set test_done='$apply' where id='$val'") or die(mysql_error());