Звучит достаточно просто, но я просто не могу заставить его работать. Я пытаюсь вставить значение checkbox в базу данных. Если он установлен, вставьте Y, если нет, вставьте N. В моей DOM я вижу, что значение флажка меняется на N после его щелчка, но значения не изменяются в базе данных. Может быть, это что-то маленькое и глупое, что мне не хватает.Изменить значение флажка и вставить в базу данных
Так значение по умолчанию равно N.
Вот HTML:
<div class="funkyradio">
<div class="funkyradio-success">
<input type="checkbox" name="animalCare" id="animalCare" value="N"/>
<label for="animalCare">Hoolitsen loomade eest:</label>
</div>
</div>
JS
//I have a lot more of those checkboxes
$('#cleaningOk, #animalCare, #homeSchooling, #worktime_lenght, #sickChildren, #isSmoking, #isTattoo, #animalsOk, #disabledChildren, #singleParent, #driversLicense, #babyOk').change(function(){
if ($(this).is(':checked')) {
$(this).val('Y');
} else {
$(this).val('N');
}
});
Для вставки я использую formValidation.io плагин и если флажок изменился, я даже не вижу N в formdata под вкладкой сети, иначе я вижу Y.
.on('success.form.fv', function(e, data) {
// Prevent form submission
e.preventDefault();
console.log("validated");
var $form = $(e.target),
formData = new FormData(),
params = $form.serializeArray(),
files = $form.find('[name="userProfilePhoto"]')[0].files;
$.ajax({
url: $form.attr('action'),
data: formData,
cache: false,
contentType: false,
processData: false,
type: 'POST',
success: function(data) {},
error: function(jqXHR, textStatus, errorThrown, data) {
console.log(jqXHR, textStatus, errorThrown, data);
}
});
});
PHP
////SERVICES
if (isset($_POST["cleaningOk"], $_POST['animalCare'], $_POST['homeSchooling'])){
$cleaningOk = $_POST['cleaningOk'];
$animalCare = $_POST['animalCare'];
$homeSchooling = $_POST['homeSchooling'];
$nanny_services = $user_home->runQuery("INSERT into services (user_id, koristab, loomade_hoolitsus, koduõpetamine) VALUES (:user_id, :cleaningOk, :animalCare, :homeSchooling) ON DUPLICATE KEY UPDATE koristab= VALUES(koristab), loomade_hoolitsus= VALUES(loomade_hoolitsus), koduõpetamine=VALUES(koduõpetamine)");
$nanny_services->bindparam(':cleaningOk', $cleaningOk, PDO::PARAM_STR);
$nanny_services->bindparam(':animalCare', $animalCare, PDO::PARAM_STR);
$nanny_services->bindparam(':homeSchooling', $homeSchooling, PDO::PARAM_STR);
$nanny_services->bindparam(':user_id', $user_id, PDO::PARAM_STR);
$nanny_services->execute();
$response_array["status"] = 'success';
}
////SERVICES
Проверка на наличие ошибок исполнения Вашего запроса. 'koristab = VALUES (koristab), loomade_hoolitsus = VALUES (loomade_hoolitsus)' должен что-то бросить. Также почему обновление до того же значения? – chris85
что у вас есть в 'var_dump ($ _ POST)'? – Alex
Флажки не отправляются на сервер, когда они не проверяются, и, вероятно, поэтому они также не включены в 'FormData'. – jeroen