我有一个复选框。 如果我选中或取消选中该复选框,则应使用 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['id'] 和 $row1['test_done'] 是列名称,它们来自另一个选择查询。
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());
}
最佳答案
您可以在复选框上使用change
事件而不是click
事件。检查复选框是否被选中,然后发送 1,否则发送 0。 在 php 端,因为我们发送这两个值,所以您将使用 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());
关于javascript - 使用ajax检查复选框时更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48784717/