私のデータベースには、ブール型のフィールドステータスがあります。
データベースに接続できました
if (!$result = mysqli_query($con,"SELECT * FROM cursos"))
{
die("Error: " . mysqli_error($con));
}
このフィールドのステータスをチェックボックスで表示し、
<?php if($row['status'] == 1) {
echo "<td>"."<input type = 'checkbox' checked='checked' name ='complete' value= '1'/>"."</td>";
}else
{
echo "<td>"."<input type = 'checkbox' name ='incomplete' value= '0'/>"."</td>";
}
?>
だから私がする必要があるのは、チェックボックスのいずれかをオンまたはオフにすると、送信ボタンを必要とせずにデータベースフィールドが自動的に変更されることです。
さて、あなたが提案したようにコードを編集しましたが、現在は機能しています。新しいコードは次のとおりです。
Ajax コード
<script>
$(document).ready(function(e) {
$('.checkboxtest').change(function(){
if( $('.checkboxtest').prop('checked') )
{checkboxstatus = '1';}
else
{checkboxstatus = '0';}
$.ajax({
type: "POST",
url: "checkboxtestbackend.php",
data: {checkboxstatus: checkboxstatus},
})
.done(function(data, textStatus, jqXHR){alert(textStatus);})
.fail(function(jqXHR, textStatus, errorThrown){alert(jqXHR+"--"+textStatus+"--"+errorThrown);});
});//end change
});//end ready
</script>
HTMLコードは次のとおりです。
<?php if($row['status'] == 1) {
echo "<td>"."<input type = 'checkbox' class='checkboxtest' checked='checked' name ='complete' value= '1'/>"."</td>";
}else
{
echo "<td>"."<input type = 'checkbox' class='checkboxtest' name ='incomplete' value= '0'/>"."</td>";
}
?>
PHP バックエンド コードは次のとおりです。
<?php
$checkboxstatus = $_POST['checkboxstatus'];
$host = "localhost";
$user = "username";
$password = "password";
$dbname = "name";
$cxn = mysqli_connect($host,$user,$password,$dbname);
if (mysqli_connect_errno()) {echo "No connection" . mysqli_connect_error();}
$query = " UPDATE cursos
SET status = '$checkboxstatus'
WHERE id = '12'";
$result = mysqli_query($cxn, $query) or die ("could not query database 1");
?>