ajax javascript复选框更改不起作用
如果复选框被选中或未被选中,我将使用以下ajax javascript来传递值,我面临的问题是,它只对mysql fetch aray中的第一行起作用,而对于其余结果,它总是发送checkboxstatus=1作为结果,无论chekbox是否被选中。代码如下:ajax javascript复选框更改不起作用,java,javascript,php,ajax,jquery,Java,Javascript,Php,Ajax,Jquery,如果复选框被选中或未被选中,我将使用以下ajax javascript来传递值,我面临的问题是,它只对mysql fetch aray中的第一行起作用,而对于其余结果,它总是发送checkboxstatus=1作为结果,无论chekbox是否被选中。代码如下: <script> $(document).ready(function(e) { $('input[name=status]').change(function(){ if( $('input[name=sta
<script>
$(document).ready(function(e) {
$('input[name=status]').change(function(){
if( $('input[name=status]').prop('checked') )
{checkboxstatus = '1';}
else
{checkboxstatus = '0';}
var idm = $(this).attr('idm');
$.ajax({
type: "POST",
url: "checkboxtestbackend.php",
data: {"checkboxstatus": checkboxstatus,
"idm":idm
},
})
.fail(function(jqXHR, textStatus, errorThrown){alert(jqXHR+"--"+textStatus+"--"+errorThrown);});
});//end change
});//end ready
</script>
$(文档).ready(函数(e){
$('input[name=status]')。更改(函数(){
if($('input[name=status]').prop('checked'))
{checkboxstatus='1';}
其他的
{checkboxstatus='0';}
var idm=$(this.attr('idm');
$.ajax({
类型:“POST”,
url:“checkboxtestbackend.php”,
数据:{“checkboxstatus”:checkboxstatus,
“idm”:idm
},
})
.fail(函数(jqXHR,textStatus,errorhorn){alert(jqXHR+“--”+textStatus+“--”+errorhorn);});
});//结束改变
});//准备就绪
通常,如果我取消选中checbox,则在第一次sql获取中会检查所有的checkgox,并将其POST的0作为值,但对于其余的sql获取结果,无论是否选中,它总是将“1”作为POST结果发送
这是显示复选框的代码:
这对我有用
我将$('input[name=status]').prop('checked')
更改为$(this.prop('checked')
)
$(文档).ready(函数(e){
$('input[name=status]')。更改(函数(){
if($(this.prop('checked')){checkboxstatus='1';}
else{checkboxstatus='0';}
var idm=$(this.attr('idm');
$.ajax({
类型:“POST”,
url:“checkboxtestbackend.php”,
数据:{“checkboxstatus”:checkboxstatus,“idm”:idm},
成功:功能(响应){
控制台日志(响应);
}
})
.fail(函数(jqXHR,textStatus,errorhorn){alert(jqXHR+“--”+textStatus+“--”+errorhorn);});
});//结束改变
});//准备就绪
请试试这个
$(document).ready(function(e) {
$('.CheckBoxClass').click(function(){ // added class based event
if( $(this).is(':checked')) {
checkboxstatus = '1';
} else {
checkboxstatus = '0';
}
var idm = $(this).attr('idm');
$.ajax({
type: "POST",
url: "checkboxtestbackend.php",
data: {"checkboxstatus": checkboxstatus,
"idm":idm
},
})
.fail(function(jqXHR, textStatus, errorThrown){alert(jqXHR+"--"+textStatus+"--"+errorThrown);});
});//end click
});//end ready
在PHP代码中,添加了class='CheckBoxClass'
<?php
echo "<input type='checkbox' idm='$idm' class='CheckBoxClass' name='status'"; if($row['status'] == 1){ print "checked='checked'"; }echo "/>";
?>
我很困惑。你提到了mysql fetch aray,但我在帖子中没有看到任何PHP。复选框是否打印错误?问题已更新,复选框打印正常,但问题在于java脚本trgger,当它应该发送checkboxstatus=0时,它发送的总是=1,它只对来自数据库的第一个结果起作用,对于其余的结果,它以checkboxstatus=1的方式工作
$(document).ready(function(e) {
$('.CheckBoxClass').click(function(){ // added class based event
if( $(this).is(':checked')) {
checkboxstatus = '1';
} else {
checkboxstatus = '0';
}
var idm = $(this).attr('idm');
$.ajax({
type: "POST",
url: "checkboxtestbackend.php",
data: {"checkboxstatus": checkboxstatus,
"idm":idm
},
})
.fail(function(jqXHR, textStatus, errorThrown){alert(jqXHR+"--"+textStatus+"--"+errorThrown);});
});//end click
});//end ready
<?php
echo "<input type='checkbox' idm='$idm' class='CheckBoxClass' name='status'"; if($row['status'] == 1){ print "checked='checked'"; }echo "/>";
?>