[英]selecting html checkbox based on json array values
我有表單,我將多個復選框項目作為數組發送到控制器,
<?php
foreach($groupsArray as $group)
{
?>
<label>
<input type="checkbox" class="icheck" name="groups[]" id="groups" value="<?php echo $group["id"];?>"> <?php echo $group['name']?> </label>
<?php
}
?>
對於數據庫中的復選框值更新,一切正常,
現在,我正在做的是,從數據庫中獲取值,我需要檢查存儲在數據庫中的值,
我收到來自 PHP 的 json 響應<
groups: [{user_id: "2", group_id: "4", id: "4", name: "system Creators",…}]
下面我用作 AJAX
if(objData.groups[0].group_id == $("#groups").val())
{
$("#groups").iCheck('check');
}
有了這個 $("#groups").val(),它總是取第一個復選框的值,所以有問題,我如何用 Json 比較所有復選框的值? 此外,如果組數組將具有多個值,則意味着多維數組,那么更多組呢?
提前致謝!
您需要能夠知道哪個checkbox
與哪個database value
。
這就是ID
在checkbox
上的用途。 你把它們都當作"groups"
——這是不好的做法。
使用:(注意動態id
屬性)
<?php
foreach($groupsArray as $group)
{
?>
<label>
<input type="checkbox" class="icheck" name="groups[]" id="chk<?php echo $group["id"];?>" value="<?php echo $group["id"];?>"> <?php echo $group['name']?> </label>
<?php
}
?>
然后從數據庫中循環您的組對象:
for(var i = 0; i < groups.length; i++) {
var chk = document.getElementById("chk" + groups[i].id);
chk.checked = true;
}
嘗試這個:
PHP :
<?php
$count=0;
foreach($groupsArray as $group)
{
?>
<label>
<input type="checkbox" class="icheck" name="groups[]" id="groups<?php echo $count;?>" value="<?php echo $group["id"];?>"> <?php echo $group['name']; ?> </label>
<?php
$count++;
}
?>
查詢:
for(var i=0;i<objData.gourps.length;i++){
if(objData.groups[i].group_id == $("#groups"+i).val())
{
$("#groups"+i).iCheck('check');
}
}
首先,將groups
復選框的 id 更改為它的類,因此使用class="groups"
而不是id="groups"
,如下所示:
<label><input type="checkbox" class="icheck" name="groups[]" class="groups" value="<?php echo $group["id"];?>"> <?php echo $group['name']?> </label>
接下來,使用 jQuery .each
方法檢查在 JSON 對象中找到的所有復選框,如下所示:
$.each(objData, function(n, i){
if(i.group_id == $(".groups[name="+n+"]").val()){
$(".groups[name="+n+"]").iCheck('check');
}
});
最后,這奏效了! 只找到那些來自 DB 的復選框並選中它們。
for(var i = 0; i < objData.groups.length; i++)
{
$("#groups" + objData.groups[i].group_id).iCheck('check');
}
感謝大家的支持!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.