2014-03-04 87 views
0

我想通過一個暴露的表單過濾器上的選擇列表來循環,並隱藏我不需要的術語。如何使用form alter獲取Drupal中選擇選項的值?

隨着我的選擇框被稱爲TTD-TID我想:

foreach ($form['ttd_tid']['#options'] as $tid => $term){ 
    if (in_array($tid,$child_terms_tids)){ 
        //leave it 

       }else{ 
        //remove it 
        unset($form['ttd_tid']['#options'][$tid]); 
       } 
} 

但是$ TID是不是選項值。這似乎是伯爵。

我試圖 的foreach($形式[ 'ttd_tid'] [ '#選項'] [ '選項']爲$ TID => $項){

但是,這也不能工作。

本質上,我需要將選項的值與數組進行比較並隱藏它。我似乎無法得到它的工作,因爲$ tid似乎是另一個數組。

我$形式陣列看起來像這樣

陣列([#info] =>數組([濾波器-field_things_to_do_tags_tid] =>數組([操作] => field_things_to_do_tags_tid_op [值] => ttd_tid [標號] = >要做的事情Tags [description] =>)[ttd_tid] => Array([#type] => select [#options] => Array [[All] => - Any - [0] => stdClass Object )[] => stdClass Object([option] => Array([63] => -Theme Parks))[2] => stdClass Object([選項] => Array([611] => -Water Parks))[3] => stdClass Object([option] => Array([612] => Arts,Culture & History))[4] => ([option] => Array([1] => -Architecture & Landmarks))[5] => stdClass Ob ject([option] => Array([30] => -Galleries))[6] => stdClass Object([option] => Array([32] => -History & Culture))[7] => stdClass對象([選項] =>數組([83] => -Museums))[8] =>,等等等等

回答

1

嘗試

foreach ($form['ttd_tid']['und']['#options'] as $tid => $term){ 

如果使用以下不工作內你改變形成它會打印出數組/管理/報告/ DBLOG時加載頁面

watchdog('$form', '<pre>'.print_r($form, true).'</pre>'); 
+0

謝謝您的回覆[UND]沒有工作。我也粘貼了上面的表單結果。 $ form ['ttd_tid'] ['options'] ['All'] ['option'] and $ form ['ttd_tid'] ['#options'] ['option']] 但沒有喜樂。 –

+0

每個值都在一個名爲'option'的對象內,因此您需要在in_array函數中使用'option'的值 – pete80

+0

謝謝Pete! –

相關問題