2009-12-11 2 views
2

게시해야하는 양식의 확인란 그룹이 있습니다.PHP - 확인란 그룹

<input type="checkbox" value="true" checked name="chk0[]"> 
<input type="checkbox" value="false" name="chk0[]"> 
<input type="checkbox" value="false" name="chk0[]"> 
<input type="checkbox" value="true" checked name="chk0[]"> 

<input type="checkbox" value="true" checked name="chk1[]"> 
<input type="checkbox" value="false" name="chk1[]"> 
<input type="checkbox" value="true" checked name="chk1[]"> 
<input type="checkbox" value="false" name="chk1[]"> 

첫 번째 그룹에서 1과 4가 확인됩니다. 두 번째 그룹에서는 1과 3이 확인됩니다. 나는이를 게시 할 때 , 나는 아래로 순차적으로 확인 확인란에 게시 된 값을 얻을 :

[chk0] => Array ( 
      [0] => true 
      [1] => true 
     ) 
[chk1] => Array ( 
      [0] => true 
      [1] => true 
     ) 

어떻게 내가 같이 게시 된 값을 얻을 수 있는지 확인 할 수 있습니다 내가 알고 싶어

[chk0] => Array ( 
      [0] => true 
      [3] => true 
     ) 
[chk1] => Array ( 
      [0] => true 
      [2] => true 
     ) 

순차적으로 보여주기보다는 체크 된 체크 박스의 키.

감사

+0

내가 원하는 방법? 각 체크 박스의 값으로 ID를 갖는 것이 더 좋지 않습니까? –

답변

5
<input type="checkbox" value="true" checked name="chk0[0]"> 
<input type="checkbox" value="false" name="chk0[1]"> 
<input type="checkbox" value="false" name="chk0[2]"> 
<input type="checkbox" value="true" checked name="chk0[3]"> 

<input type="checkbox" value="true" checked name="chk1[0]"> 
<input type="checkbox" value="false" name="chk1[1]"> 
<input type="checkbox" value="true" checked name="chk1[2]"> 
<input type="checkbox" value="false" name="chk1[3]"> 

가 무슨 뜻인지보기?
<input name="chk0[1]" ...> 상자는 PHP 내부의 배열 요소와 똑같이 작동합니다. $_POST['chk0'][1] 요소로 PHP로 전송되는 인덱스를 지정할 수 있습니다.

+1

왜 아래 표를해야합니까? 내가 뭔가를 놓쳤습니까? ... * (사람들이 투표를하지 않고 그냥 단어없이 실행하면됩니다.) # – Atli

0

명시 적으로 키를 제공합니다.

<input type="checkbox" value="true" checked name="chk0[0]"> 
<input type="checkbox" value="false" name="chk0[1]"> 
<input type="checkbox" value="false" name="chk0[2]"> 
<input type="checkbox" value="true" checked name="chk0[3]"> 

<input type="checkbox" value="true" checked name="chk1[0]"> 
<input type="checkbox" value="false" name="chk1[1]"> 
<input type="checkbox" value="true" checked name="chk1[2]"> 
<input type="checkbox" value="false" name="chk1[3]"> 

나는 두 개의 서로 다른 사람이 아닌, 하나의 배열에 데려 제안 :

<input type="checkbox" value="true" name="chk[0][0]" checked> 
<input type="checkbox" value="false" name="chk[0][1]"> 
<input type="checkbox" value="false" name="chk[0][2]"> 
<input type="checkbox" value="true" name="chk[0][3]" checked> 

<input type="checkbox" value="true" name="chk[1][0]" checked> 
<input type="checkbox" value="false" name="chk[1][1]"> 
<input type="checkbox" value="true" name="chk[1][2]" checked> 
<input type="checkbox" value="false" name="chk[1][3]"> 

을 다음과 같은 출력을 생성 :

Array 
(
    [chk] => Array 
     (
      [0] => Array 
       (
        [0] => true 
        [3] => true 
       ) 

      [1] => Array 
       (
        [0] => true 
        [2] => true 
       ) 

     ) 

) 
0

name="chk[3]" 대신 name="chk[]" I 답변 1 동의

1

에 같이 체크 박스의 이름으로 키를 사용하지만, 문제는 내가 하위 범주 확인란을 전환 할 부모의 체크 박스를 사용하고있다. 내가 chk0 [0], chk0 갈 경우 [1] 등의 toggleParentCheckboxes 함수를 실패 ... 이것 좀 봐 주시기 바랍니다 :

<html> 
<head> 

<script src="http://www.google.com/jsapi"></script> 

<script> 
google.load("jquery", "1.3.2"); 
google.load("jqueryui", "1.7.2"); 
</script> 

<script language="JavaScript"> 
function toggleTableRows() 
{ 
    $(document).ready(function() { 
     $('img.parent') 
      .css("cursor","pointer") 
      .toggle(
       function() { 
       $(this).attr("title","Click to Collapse") 
       $(this).attr("src","arrow_expanded.gif"); 
       $('tr').siblings('#child-'+this.id).toggle(); 
       }, 
       function() { 
       $(this).attr("title","Click to Expand"); 
       $(this).attr("src","arrow_collapsed.gif"); 
       $('tr').siblings('#child-'+this.id).toggle(); 
       } 
     ); 

      initCheckBoxes(); 
    }); 
} 

function toggleCheckboxes(current, form, field) { 
     $("#"+ form +" :checkbox[name='"+ field +"[]']").attr("checked", current.checked); 
} 

function toggleParentCheckboxes(current, form) { 
     var checked = ($("#"+ form +" :checkbox[name='"+ current.name +"']").length == $("#"+ form +" :checkbox[name='"+ current.name +"']:checked").length); 
     $("#"+ form +" :checkbox[name='"+ current.name.replace("[]", "") +"']").attr("checked", checked); 
} 

function initCheckBoxes() { 
    $("#frmDinnerMenu :checkbox:checked").each(function() { 
     if (this.name.replace(/[0-9]/g, "") == "chk[]") { 
      toggleParentCheckboxes(this, "frmDinnerMenu"); 
     } 
    }); 
} 
</script> 
<script language="JavaScript">toggleTableRows();</script> 
</head> 
<body> 

<form name="frmDinnerMenu" id="frmDinnerMenu" method="POST" action=""> 
<table border=1> 
<tr> 
    <td><img class="parent" id="0" src="arrow_collapsed.gif" title="Click to Expand">Category - Fruits</td> 
    <td><input type="checkbox" name="chk0" onclick="toggleCheckboxes(this, 'frmDinnerMenu', 'chk0');"/></td> 
</tr> 
<tr style="display: none;" id="child-0"> 
    <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Apple</td> 
    <td><input type="checkbox" value="0" name="chk0[0]" onclick="toggleParentCheckboxes(this, 'frmDinnerMenu');"/></td> 
</tr> 
<tr style="display: none;" id="child-0"> 
    <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Banana</td> 
    <td><input type="checkbox" checked value="0" name="chk0[1]" onclick="toggleParentCheckboxes(this, 'frmDinnerMenu');"/></td> 
</tr> 
<tr style="display: none;" id="child-0"> 
    <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Orange</td> 
    <td><input type="checkbox" checked value="0" name="chk0[2]" onclick="toggleParentCheckboxes(this, 'frmDinnerMenu');"/></td> 
</tr> 

<tr><td><img class="parent" id="1" src="arrow_collapsed.gif" title="Click to Expand">Category - Vegetables</td><td><input type="checkbox" name="chk1" onclick="toggleCheckboxes(this, 'frmDinnerMenu', 'chk1');"/></td></tr> 
<tr style="display: none;" id=child-1><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cabbage</td><td><input type="checkbox" checked value="0" name="chk1[]" onclick="toggleParentCheckboxes(this, 'frmDinnerMenu');"/></td></tr> 
<tr style="display: none;" id=child-1><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tomatoes</td><td><input type="checkbox" checked value="0" name="chk1[]" onclick="toggleParentCheckboxes(this, 'frmDinnerMenu');"/></td></tr> 
<tr style="display: none;" id=child-1><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Green Peppers</td><td><input type="checkbox" checked value="0" name="chk1[]" onclick="toggleParentCheckboxes(this, 'frmDinnerMenu');"/></td></tr> 
<tr><td><img class="parent" id="2" src="arrow_collapsed.gif" title="Click to Expand">Category - Dessert</td><td><input type="checkbox" name="chk2" onclick="toggleCheckboxes(this, 'frmDinnerMenu', 'chk2');"/></td></tr> 
<tr style="display: none;" id=child-2><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ice Cream</td><td><input type="checkbox" checked value="0" name="chk2[]" onclick="toggleParentCheckboxes(this, 'frmDinnerMenu');"/></td></tr> 
<tr style="display: none;" id=child-2><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Custard</td><td><input type="checkbox" checked value="0" name="chk2[]" onclick="toggleParentCheckboxes(this, 'frmDinnerMenu');"/></td></tr> 
<tr style="display: none;" id=child-2><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Chocolate Cake</td><td><input type="checkbox" checked value="0" name="chk2[]" onclick="toggleParentCheckboxes(this, 'frmDinnerMenu');"/></td></tr> 
</table> 
</form> 
</body> 
</html> 
나는이 문제를 해결할 수있는 방법

, 그래서 토글 작품과도를 인덱스를 원하는 이유는 무엇 포스트 변수는 ..

감사

+0

이것은 처음 질문했던 것과는 전혀 다른 질문입니다. 새로운 질문 제출을 작성해야합니다. – Sampson