我正在尝试在公开的表单过滤器上循环选择列表并隐藏我不需要的术语。
我的选择框名为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($ form ['ttd_tid'] ['#options'] ['option'] as $ tid => $ term){
但这也不起作用。
基本上,我需要将选项的值与数组进行比较并隐藏它。我似乎无法让它工作,因为$ tid似乎是另一个阵列。
我的$ form数组看起来像这样
数组([#info] =>数组([filter-field_things_to_do_tags_tid] =>数组([运算符] => field_things_to_do_tags_tid_op [value] => ttd_tid [label] =>要做的事情标签[说明] ] =>))[ttd_tid] =>数组([#type] =>选择[#options] =>数组([All] => - 任意 - [0] => stdClass对象([选项] =>数组([86] =>游乐园))[1] => stdClass对象([选项] =>数组([63] => -Theme Parks))[2] => ; stdClass Object([option] => Array([611] => -Water Parks))[3] => stdClass Object([option] => Array([612] => Arts,Culture& ;历史))[4] => stdClass对象([选项] =>数组([1] => -Architecture& Landmarks))[5] => stdClass对象([option] =>数组([30] => -Galleries))[6] => stdClass对象([选项] =>数组([32] => -History& Culture))[7] => stdClass对象( [option] =>数组([83] => -Museums))[8] =>等等
答案 0 :(得分:1)
尝试
foreach ($form['ttd_tid']['und']['#options'] as $tid => $term){
如果在你的表单中使用以下内容不起作用,则在加载页面时,它会将数组打印到/ admin / reports / dblog
watchdog('$form', '<pre>'.print_r($form, true).'</pre>');