2012-11-20 106 views
0

我有一個項目,我用jQuery創建隱藏的輸入值。這些代表組和成員,所以我有一個數組用於組本身和數組以及每個組的成員。

例如幾創作後的形式的代碼包括

<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"> 

2個基團與在2名GROUP_1成員和group_2 1個構件的一個例子。

現在,經過提交我的代碼,通過我用這個代碼的值進行迭代:

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" 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"> 

取而代之的是:

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

當你後你會得到一個數組中的值,所以$_POST['group_1']將不存在作爲一個字符串首先,它將是$_POST['group_1'][0]。所以你也必須重複這個值。

希望這會有所幫助。

+0

他正在遍歷這兩個數組。 –