gpt4 book ai didi

javascript - 按 id 保存多个复选框

转载 作者:行者123 更新时间:2023-12-02 16:59:24 25 4
gpt4 key购买 nike

我正在使用实时复选框,因此当我需要立即将一个复选框置于 ON(1) 或 OFF(0) 时,该复选框会更新数据库中的值,一切正常......但现在我正在使用实时复选框用户列表中的复选框(我现在已经有 100 个用户)...所以问题是当我尝试禁止某人时,该复选框仅适用于最后一个用户,而不适用于其他用户...可以你能帮我一下吗?

这是表格:

<form class="form-horizontal" method="post" name="ban" id="ban">
<input type="hidden" name="id" value="<?php echo $row['id']; ?>">
<?php if ($row['banned'] == '1') {
echo '<input type="checkbox" name="banned" data-no-uniform="true" class="iphone-toggle" value="on" checked>';
} else {
echo '<input type="checkbox" name="banned" data-no-uniform="true" class="iphone-toggle" value="off" >';
} ?>
</form>
<div id="gif" style="display:none;" align="center"><img src="img/ajax-loaders/ajax-loader-1.gif" /></div>

这里是 JS:

$("#ban").click(function(){
$.ajax({
type:"POST",
url:"includes/ban.php?ts=" + new Date().getTime(),
dataType:"text",
data:$(this).serialize(),
beforeSend:function(){
$("#gif").show();
},
success:function(response){
$("#gif").hide();
}
})
return false;
});

这是数据库的代码:

<?php
include('con.php');
if($_POST['banned']==on) {
try{
$id = $_POST['id'];
$banned = '0';
$sql = "UPDATE BANS SET
banned = :banned
WHERE id= :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':banned', $banned, PDO::PARAM_STR);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
echo "<div class='alert alert-block alert-success fade in'>
<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>
the ban is off!.
</div>";
}catch(PDOException $exception){
echo "Error: " . $exception->getMessage();
}
} else {
try{
$id = $_POST['id'];
$banned = '1';
$sql = "UPDATE BANS SET
banned = :banned
WHERE id= :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':banned', $banned, PDO::PARAM_STR);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
echo "<div class='alert alert-block alert-danger fade in'>
<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>
the ban is on!
</div>";
}catch(PDOException $exception){
echo "Error: " . $exception->getMessage();
}
}
$dbh = null;
?>

最佳答案

只有最后一个元素被提交的原因是你不能将相同的 id 分配给多个元素。

更改:<form class="form-horizontal" method="post" name="ban" id="ban">

致:<form class="form-horizontal ban" method="post">

然后将您的 jQuery 选择器更新为 $("form.ban")

最后,在您的 PHP 中:if($_POST['banned']==on) {应该是:if($_POST['banned']=='on') {

编辑:作为旁注,同样的问题将影响 AJAX 加载器 GIF,再次假设每行都有一个 AJAX 加载器,但这超出了本问题的范围。

关于javascript - 按 id 保存多个复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25896555/

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