2016-09-17 40 views
0

我想让我的ajax json脚本更新我的HTML复选框,其中包含来自我的数据库的值,但无法使其工作。请任何帮助。我想让jquery使用ajax更新复选框

下面是JS。

\t setInterval(function(){ 
 
\t \t $.ajax({ 
 
\t \t \t url:"databaseQuiry.php", 
 
\t \t \t dataType:"json", 
 
\t \t \t success: function(data){ 
 
\t \t $('niamh').prop('checked', data.niamhswitch); 
 
\t \t \t } 
 
\t \t }); 
 
\t }, 2000);

的HTML选中复选框我想更新低于

\t <div class="niamhSwitch"> 
 
\t \t <label class="switch"> 
 
\t \t <input type="checkbox" name="niamh" id="switch" value="1"> 
 
\t <div class="slider round"></div> 
 
\t </label></div>

我知道,JSON是返回niamhswitch “:” 1" ,所以我值从我的数据库返回1,但我怎么得到这个使复选框becom检查值1,并取消选择值0.我曾尝试使用类和名称的元素选择器,但都不起作用。

+0

使用'$('#switch')'而不是'$('niamh')'。 – Azim

回答

2

您的选择器的错误$('niamh')将寻找标签名称为'niamh'的元素。您需要$('[name=niamh]')$('#switch')

+0

非常感谢。我新我可以使用该ID,但我有3个相同的ID开关。我想要使​​用类或名称选择器。 $('[name = niamh]')的工作表示感谢 – user2669997

+0

这个工作,但只有当json的返回值为1时。当它为0时,交换机不更新为未选中状态。你知道为什么这不起作用,或者我需要提出这个问题作为一个单独的问题 – user2669997

+0

是的,因为0被解释为一个falsy值,当传递给jQuery的'prop'()时,它被解释为false,即DON '检查。 1是真实的,即DO检查。此外,您不能拥有多个具有相同ID的元素 - 这是无效的,并且可能会导致选择器出现问题。 – Utkanos