2012-10-04 5 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>"; 
} 

를 시도 할 수 그 다시 $checkboxarray은 귀하의 배열 목록입니다

+0

jquery를 사용할 필요가 없습니다. – softsdev

+0

사실 'jQuery'가 필요 없습니다. 배열을 다소 다차원 적으로 보였으므로 in_array가 작동하기 위해서는 중첩 된 for 루프가 필요 했으므로 사용하는 것이 더 쉬웠다. – watkib

관련 문제