2012-10-04 23 views
0

我正在爲包含checkboxes的表單編輯功能。即我從這個表格提交數據,然後在提交之後有一個條款來編輯以前提交的數據。檢查其中使用jQuery的php數組中的ID的複選框

我有一個包含提交的複選框值的數組。所以我希望每個複選框的值都包含在php array中,我想讓他們使用jQuery進行檢查。

我已經試過如下:

HTML:

<?php 
foreach ($selections as $selection) { 
echo "<tr><td>" . $selection -> Name . "</td><td><input type=checkbox id=" . $selection -> Name . " name=selections[] value=" . $selection -> id . " /></td></tr>"; 
}?> 

SCRIPT:

var checkboxarray = <?php echo json_encode($checkboxarray) ?>; 

     $.each(checkboxarray, function (i, elem){ 

     if(elem.name == $('input[name ="selections[]"]').attr('id')){ 

      $('input[name ="selections[]"]').attr('checked','checked'); 

      } 

     }) 

然而,它似乎並沒有正常工作。

幫助表示感謝。

+0

你的'$ checkboxarray'是怎麼樣的? –

+1

'$('input [name =「selections []」]')'選擇所有複選框,而不是某個特定的複選框。只需試試$('#'+ elem.name).attr('checked','checked')'。 – DCoder

+0

謝謝'$('#'+ elem.name).attr('checked','checked')'更具體,效果更好。 – watkib

回答

1

你可以這樣做:

$.each(checkboxarray, function (i, elem){ 
    if($('#'+elem.name) != 'undefined'){ 
     $('#'+elem.name).attr('checked', true); 
    } 
}); 
1

你可以查找id屬性直接在您的選擇:

$.each(checkboxarray, function(){ 
     if($('#' + this.name).length){ 
      $('#' + this.name).attr('checked','checked'); 
     } 
    }); 
}); 
1

你也可以

嘗試

foreach ($selections as $selection) { 
    $checked = in_array($selection -> Name, $checkboxarray) ? 'checked="checked"' : ''; 
echo "<tr><td>" . $selection -> Name . "</td><td><input type=checkbox id=" . $selection -> Name . " name=selections[] value=" . $selection -> id . " ".$checked."/></td></tr>"; 
} 

他re $checkboxarray是你的數組列表checked的

+0

不需要使用jquery – softsdev

+0

真正不需要'jQuery'。我發現使用它比較容易,因爲數組看起來有點多維,所以我需要嵌套for循環for_array來工作。 – watkib

相關問題