2011-08-31 3 views
4

검색 결과를 표/양식으로 반환하는 웹 페이지가 있습니다. 모든 확인란을 선택하면 검색 결과에 대한 모든 확인란이 선택됩니다. 디스플레이 결과를 내 코드는 다음과 같습니다 :모두 선택 확인란

<script type="text/javascript" 
<!-- 
function SetAllCheckBoxes(FormName, FieldName, CheckValue) 
{ 
    if(!document.forms[FormName]) 
     return; 
    var objCheckBoxes = document.forms[FormName].elements[FieldName]; 
    if(!objCheckBoxes) 
     return; 
    var countCheckBoxes = objCheckBoxes.length; 
    if(!countCheckBoxes) 
     objCheckBoxes.checked = CheckValue; 
    else 
     // set the check value for all check boxes 
     for(var i = 0; i < countCheckBoxes; i++) 
      objCheckBoxes[i].checked = CheckValue; 
} 
// --> 
</script> 

그리고이 같은 버튼 :

<form action="noJavaScript.php" name="theForm" method="post"> 
<table style="border: 1px solid black" RULES=ALL FRAME=VSIDES> 
<th> </th><th>Order #</th><th>Inspector</th><th>Reference #</th><th>Client Name</th><th>Property Address</th><th>City</th><th>State</th><th>Zip</th><th>Inspection Date</th> 
     <?php 
      while ($row = mysql_fetch_assoc($result)) 
      { 
       echo '<tr><td>'; 
       echo '<input type="checkbox" name="selected[]" value="'.$row['order_number'].'"/>'; 
       echo '</td>'; 
       foreach ($row as $key => $value) 
        echo '<td>'.htmlspecialchars($value).'</td>'; 
       echo '</tr>'; 
      } 
     ?> 

    </table> 
<input type="submit" name="submit" value="Edit/Modify Order" onClick="document.theForm.action='modify.php'"> 
<input type="submit" name="submit" value="Clone Order" onClick="document.theForm.action='clone.php'"> 
<input type="submit" name="submit" value="Delete Order" onClick="document.theForm.action='deleteorder.php'"> 
<input type="submit" name="submit" value="Archive Order" onClick="document.theForm.action='archive.php'"> 

</form> 

나는 다음과 같은 기능을 사용하여 시도했다

 <input type="button" onclick="SetAllCheckBoxes('theForm', 'myCheckbox', true);" value="Check All">; 

을하지만 난 얻을 수 없다 그것은 작동합니다.

+0

무엇 '을 참조 myCheckbox' 않습니다입니까? 확인란의 이름을 그렇게 지정하지 마십시오. – pimvdb

+0

JavaScript가 클라이언트 측에서 작동합니다. 따라서 php는 부적절합니다. 렌더링 된 html의 대표적인 예를 게시 할 수 있습니까? –

+0

@pimvdb "myCheckbox"를 내 체크 박스의 이름으로 변경하더라도 여전히 작동하지 않습니다. – James

답변

1

각 확인란 입력에 클래스를 추가하십시오. 그들은 type="checkbox"class="yourclass" 모두가 있는지 여부를

echo '<input type="checkbox" name="selected[]" value="'.$row['order_number'].'" class="yourclass" />';

그런 다음 docment의 모든 입력 필드를 통해 자바 스크립트 반복 처리와 체크. 그리고 그들 모두를 CHECKED로 설정하십시오!

1

당신은 간단한 방법으로

$("form input:checkbox").attr('checked','true'); 
1
var form = document.getElementsById('form_id'); 
var checkBoxes = form.getElementsByTagName('input'); 
for (var i in checkBoxes) 
{ 
    if (checkBoxes[i].type=="checkbox") 
     checkBoxes[i].checked = true; 
} 
0

최고의 솔루션 4 U를 이렇게 jQuery를 사용할 수는 JQuery와 스크립트

/*Unik Checkbox to mark/desmark other checkboxes*/ 
<input type="checkbox" onclick="selectAllCheckBoxes(this)" id="checkBoxUnik"/> 

/*Several other Checkboxes inside loop*/ 
<input type="checkbox" onclick="unselectCheckBoxUnik()" class="checkBoxInLoop" /> 

<script> 
    function selectAllCheckBoxes(obj){ 
     $('input:checkbox:not(:disabled).checkBoxInLoop').prop('checked', jQuery(obj).prop('checked')); 
    } 

    function unselectCheckBoxUnik(){ 

     /*first you verify if the quantity of checkboxes equals number of checkboxes*/ 
     a = $('input:checkbox:not(:disabled).checkBoxInLoop:checked').size(); 
     b = $('input:checkbox:not(:disabled).checkBoxInLoop').size(); 

     /*if equals, mark a checkBoxUnik*/ 
     ((a == b)? $('#checkBoxUnik').prop("checked", true) : $('#checkBoxUnik').prop("checked", false)); 
    } 
</script>