我想通过一个暴露的表单过滤器上的选择列表来循环,并隐藏我不需要的术语。如何使用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] =>,等等等等
谢谢您的回复[UND]没有工作。我也粘贴了上面的表单结果。 $ form ['ttd_tid'] ['options'] ['All'] ['option'] and $ form ['ttd_tid'] ['#options'] ['option']] 但没有喜乐。 –
每个值都在一个名为'option'的对象内,因此您需要在in_array函数中使用'option'的值 – pete80
谢谢Pete! –