gpt4 book ai didi

php - 更改复选框值并插入到数据库

转载 作者:行者123 更新时间:2023-11-29 07:16:53 25 4
gpt4 key购买 nike

听起来很简单,但我就是无法让它发挥作用。我正在尝试将复选框值插入数据库。如果选中,则插入 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 插件,如果复选框更改,我什至在网络选项卡下的 formdata 中看不到 N,否则我会看到 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

最佳答案

不要尝试更改客户端上的值。复选框的设计目的并非如此。如果未选中该复选框,则不会出现在提交的数据中。

测试是否发送数据。

$value = "N";
if (isset($_POST['animalCare'])) {
$value="Y";
}

(显然,不要将从客户端发送的值作为运行查询的要求)。

关于php - 更改复选框值并插入到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37680189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com