2012-11-20 4 views
0

jQuery를 사용하여 숨겨진 입력 값을 만드는 프로젝트가 있습니다. 이것들은 그룹과 멤버를 나타냅니다. 따라서 그룹에 대한 하나의 배열과 각 그룹의 멤버와의 배열을가집니다.

예를 들어 몇 작품 후 형태 코드 group_1 2 부재와 group_2 1 부재와 2 기의 예

<input type="hidden" name="groups['group_2']" value="0"> 
<input type="hidden" name="groups['group_1']" value="0"> 
<input type="hidden" class="mem_id_holder" name="group_1[]" value="FWNGVISkjW"> 
<input type="hidden" class="mem_id_holder" name="group_1[]" value="G0t9E3C0yG"> 
<input type="hidden" class="mem_id_holder" name="group_2[]" value="NT-JEDVCS9"> 

를 포함한다. 는 I이 코드를 사용하는 값을 반복하려면 코드를 전송 한 후 지금

:

if ($groups_no && isset($_POST['groups']) && !empty($_POST['groups'])){ 
    $groups = $_POST['groups']; 
    foreach ($groups as $key => $val){ 
     if (isset($_POST[$key]) && !empty($_POST[$key])){ 
      $group_members = $_POST[$key];  
      foreach ($group_members as $member_key => $member_val){ 
       echo 'Actions to be done here!'; 
      } 
     } 
    } 
} 
내가 가진 문제는 내가 다음과 같은 경고를하고, 프로그램이 실패한다는 것입니다

:

Notice: Undefined index: 'group_1' in C:\ ... .php on line 31 
Warning: Invalid argument supplied for foreach() ... 
Notice: Undefined index: 'group_2' in C:\ ... .php on line 31 
Warning: Invalid argument supplied for foreach() ... 

내가 사용할 때 $_POST['group_1'] 모든 것이 잘 작동하지만 얼마나 많은 그룹을 내가 변수가 필요합니다 삽입 해야할지 모르겠다. 일부 Google 결과를 통해 제안 된 몇 가지 다른 것들을 시도했지만 아무 것도 효과가 없었습니다.

아이디어가 있으십니까? $_POST도 변수를 색인으로 가질 수 있습니까? 또한 그렇지 않은 경우 다른 해결 방법이 있습니까?

답변

2

HTML에서 배열 색인 주위에 따옴표를 넣지 마십시오. 이것 대신에

<input type="hidden" class="mem_id_holder" name="group_1[]" value="FWNGVISkjW"> 

: 이렇게함으로써

<input type="hidden" name="groups[group_2]" value="0"> 
<input type="hidden" name="groups[group_1]" value="0"> 
<input type="hidden" class="mem_id_holder" name="group_1[]" value="FWNGVISkjW"> 
<input type="hidden" class="mem_id_holder" name="group_1[]" value="G0t9E3C0yG"> 
<input type="hidden" class="mem_id_holder" name="group_2[]" value="NT-JEDVCS9"> 
+0

예! 신속한 답변과 해결책을 가져 주셔서 대단히 감사합니다! :) –

+0

당신은 환영합니다 :-D –

0

은 당신이 배열을 취득하려고하는 값을 게시 할 때

<input type="hidden" class="mem_id_holder" name="group_1" value="FWNGVISkjW"> 

그래서 $_POST['group_1'] 문자열로 존재하지 것이다 첫 번째 인스턴스에서는 $_POST['group_1'][0]이됩니다. 따라서 그 가치를 반복해야합니다.

희망이 도움이됩니다.

+0

그는 두 배열을 반복합니다. –