我有一个复选框。 如果我选中或取消选中该复选框,则应使用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());
}
答案 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());