复选框未返回正确的值jquery/php
我正在尝试获取复选框的值(true或false),并在while函数中更新一行的数据库。但是,复选框似乎只根据第一行记录值的变化。例如,如果选中了第1行复选框,则value=true。然后,我可以单击下面的行并获取复选框值true。但是,当我单击第一行之外的行以获取false时,它将仅在第一行复选框未选中时注册。我认为这与行id有关,但多年来一直试图修复此问题,但无法修复。请帮忙 HTML/PHP复选框未返回正确的值jquery/php,php,jquery,html,mysql,Php,Jquery,Html,Mysql,我正在尝试获取复选框的值(true或false),并在while函数中更新一行的数据库。但是,复选框似乎只根据第一行记录值的变化。例如,如果选中了第1行复选框,则value=true。然后,我可以单击下面的行并获取复选框值true。但是,当我单击第一行之外的行以获取false时,它将仅在第一行复选框未选中时注册。我认为这与行id有关,但多年来一直试图修复此问题,但无法修复。请帮忙 HTML/PHP while($row = $result->fetch_assoc()) { echo '
while($row = $result->fetch_assoc()) {
echo
'
<input type="checkbox" name="home['.$row["id"].']" id="'.$row["id"].'" '.($row["home"]>0 ? 'checked="checked"' : '').'>
<label for="'. $row["id"].'"></label>
PHP/MYSQL
if ($home == 'true') {
$check = date("Ymd");
} else {
$check = '';
}
if(isset($_POST["home"])) {
$sql = "UPDATE addresses SET home='$check' WHERE id='$id'";
if($mysqli->query($sql) === TRUE){
} else {
echo "error" . $sql . "<br>".$mysqli->error;
}
}
if($home==“true”){
$check=日期(“Ymd”);
}否则{
$check='';
}
如果(isset($_POST[“home”])){
$sql=“更新地址集主页='$check',其中id='$id';
if($mysqli->query($sql)==TRUE){
}否则{
回显“错误”。$sql。“$mysqli->错误;
}
}
//使用此
引用正在单击的框:
$(document).ready(function(){
$('input[type="checkbox"]').on("click", function(){
var on = $(this).prop("checked");
$.post("work/updateaddress.php",{home:on,id:this.id});
});
});
问题在于,您正在选择单击处理程序中的所有复选框,然后访问该集合上的
prop()
,该集合将只返回第一个集合中的值
相反,使用this
关键字引用引发事件的复选框。出于可访问性的原因,您还应该使用更改
事件,而不是单击
:
$('input[type="checkbox"]').on('change', function(){
var on = $(this).prop("checked"); // or just this.checked
$.post("work/updateaddress.php", {
home: on,
id: this.id
});
});
您应该使用
change
事件,而不是单击
事件作为复选框
$('input[type=“checkbox”]”)。在('change',function()上{
var on=this.checked
console.log(登录)
});代码>
或者,要更改,您可以使用输入
$('input[type=“checkbox”]”)。在('input',函数(e)上{
让thischeck=e.target.checked
警报(此复选框)
});代码>
第1行
没问题。如果答案有帮助的话,不要忘记接受它——在你之前的一些问题上也是如此。
$('input[type="checkbox"]').on('change', function(){
var on = $(this).prop("checked"); // or just this.checked
$.post("work/updateaddress.php", {
home: on,
id: this.id
});
});