У меня в базе данных есть столбец top с типом boolean (tinyint(1)). Который может принимать два значения 0 или 1
На странице есть форма для записи данных. В форме есть input type checkbox
<input type="checkbox" name="top" id="top">
Скрипт который отсылает данные формы к обработчику:
$('#user_form').on('submit', function(event) {
event.preventDefault();
var link = $('#link').val();
console.log($('#top').is(":checked"));
if ($('#top').is(":checked")) {
$('#top').val(1);
}else {
$('#top').val(0);
}
var extension = $('#user_image').val().split('.').pop().toLowerCase();
if (extension != '') {
if (jQuery.inArray(extension, ['gif', 'png', 'jpg', 'jpeg']) == -1) {
alert("Invalid Image File");
$('#user_image').val('');
return false;
}
}
if (link != '' && top != '') {
$.ajax({
url: "include/networks/action.php",
method: 'POST',
data: new FormData(this),
contentType: false,
processData: false,
success: function(data) {
alert(data);
$('#user_form')[0].reset();
load_data();
$("#action").val("Insert");
$('#button_action').val("Insert");
$('#imagePreview').html('');
}
});
} else {
alert("Both Fields are Required");
}
});
То есть если Input checkbox является cheked то отправляет значение 1, если нет, то значение 0
И обработчик который принимает данные:
if ($_POST["action"] == "Insert") {
$link = mysqli_real_escape_string($object->connect, $_POST["link"]);
$top = mysqli_real_escape_string($object->connect, $_POST["top"]);
$image = $object->upload_file($_FILES["user_image"]);
$query = "
INSERT INTO networks
(link, top, image)
VALUES ('" . $link . "', '" . $top . "', '" . $image . "')";
$object->execute_query($query);
echo 'Data Inserted';
}
Ошибка заключается в том, что когда input checked = 1, то данные добавляются в базу, а когда input no checked = 0, то данные не добавляются
В чем может быть проблема?