我正在填充我的数据库中的行列表,其中包含每个用户的复选框(data-uid
)。我正在使用data-uid
对我的PHP文件进行Ajax调用,这将在检查时公开列表,在未选中时将其设为私有。我的代码似乎很好但是当我检查任何行的任何复选框时,只有第一行受到影响。我做了一个跟踪,我注意到,无论我点击哪个复选框,它都只获得了第一个复选框的值。
这是我的代码。任何帮助表示赞赏:
PHP代码段
<?php
foreach($results as $row){
?>
<div class="switch">
<?php
if($row['is_active'] == 1){
?>
<input data-uid="<?= $row['listing_uid'] ?>" data-active="1" id="cmn-toggle-1" class="switchBtn cmn-toggle cmn-toggle-round" type="checkbox" checked />
<?php
}else if($row['is_active'] == 0){
?>
<input data-uid="<?= $row['listing_uid'] ?>" data-active="0" id="cmn-toggle-1" class="switchBtn cmn-toggle cmn-toggle-round" type="checkbox" />
<?php
}
?>
<label for="cmn-toggle-1"></label>
</div>
<?php
}
?>
JQuery代码
$(".switchBtn").click(function(e){
e.preventDefault();
var data_uid = $(this).attr('data-uid');
var data_active = $(this).attr('data-active');
var data_string = 'data_uid='+data_uid+'&data_active='+data_active;
alert(data_string);
$.ajax({
url: '../includes/set_listing.php',
type: 'POST',
data: data_string,
success:function(e){
window.location.reload();
},
error:function(e){
//alert(e);
}
});
});