Php 使用Drupal7中的hook\u field\u widget\u表单将级联选择列表作为自定义字段

Php 使用Drupal7中的hook\u field\u widget\u表单将级联选择列表作为自定义字段,php,drupal,module,drupal-7,drupal-modules,Php,Drupal,Module,Drupal 7,Drupal Modules,问题 我已经为一个自定义字段编写了一个Drupal自定义模块。 该字段包含三个级联选择列表。 我正在使用javascript填充列表 现在我需要在钩子\字段\小部件\表单钩子中填充它 我的hook\u field\u widget\u表单如下: /** *实现钩子\字段\小部件\表单。 */ 函数自定义\选择\列表\字段\小部件\表单和$form,&$form\状态、$field、$instance、$langcode、$items、$delta、$element{ $node=菜单\获取\对

问题

我已经为一个自定义字段编写了一个Drupal自定义模块。 该字段包含三个级联选择列表。 我正在使用javascript填充列表

现在我需要在钩子\字段\小部件\表单钩子中填充它

我的hook\u field\u widget\u表单如下:

/** *实现钩子\字段\小部件\表单。 */ 函数自定义\选择\列表\字段\小部件\表单和$form,&$form\状态、$field、$instance、$langcode、$items、$delta、$element{ $node=菜单\获取\对象; $division=isset$node->field\u division\u custom\u select['und'][0]['division']?$node->field\u division\u custom\u select['und'][0]['division']:; $district=isset$node->field\u division\u custom\u select['und'][0]['district']?$node->field\u division\u custom\u select['und'][0]['district']:; $thana=isset$node->field_division_custom_select['und'][0]['thana']?$node->field_division_custom_select['und'][0]['thana']:; drupal_add_jsarray'custom_select_list'=>array'division'=>$division,'district'=>$district,'thana'=>$thana,array'type'=>setting'; 开关$instance['widget']['type']{ 案例“自定义字段小部件”: $element['custom_select_field']=数组 'type'=>'fieldset', 'title'=>$element['title'], “tree”=>正确, ; $element['custom\u select\u field']['division']=array '类型'=>'选择', “title”=>t“Division”, “默认值”=>isset$items[$delta]['division']?$items[$delta]['division']:isset$node->field\u division\u custom\u select['und'][0]['division']?$node->field\u division\u custom\u select['und']:, “必需”=>$element[“必需”], “id'=>“分区选择列表”, 'attributes'=>array'class'=>array'selectpicker','title'=>t'Thana', ; $element['custom_select_field']['district']=array '类型'=>'选择', “标题”=>t“地区”, “默认值”=>isset$items[$delta]['district']?$items[$delta]['district']:isset$node->field\u division\u custom\u select['und'][0]['district']?$node->field\u division\u custom\u select['und']:, “必需”=>$element[“必需”], 'id'=>'地区选择列表', 'attributes'=>array'class'=>array'selectpicker','title'=>t'Thana', ; $element['custom\u select\u field']['thana']=数组 '类型'=>'选择', 'title'=>t'Thana', '默认值'=>isset$items[$delta]['thana']?$items[$delta]['thana']:isset$node->field\u division\u custom\u select['und'][0]['thana']?$node->field\u division\u custom\u select['und'], “必需”=>$element[“必需”], 'id'=>'thana select list', 'attributes'=>array'class'=>array'selectpicker','title'=>t'Thana', ; 打破 } 返回$element;
} 我自己解决了这个问题。在以前的版本中-

我在hook\u field\u widget\u form函数中创建了没有选项的初始选择列表

我使用javascript填充了分区列表。然后,在选择分区I后,填充了分区列表,并通过选择分区类似地填充了列表

这在我提交表单时产生了错误

现在-

我已经在custom_select_list_field_widget_form函数中声明了初始分区列表、地区列表和Thana列表

$division\u arr=数组 “1”=>“第1部分”, “2”=>“第2部分”, “3”=>“第3部分”, “4”=>“第4部分”, “5”=>“第5部分”, ; $district\u arr=阵列 “1”=>“1区”, “2”=>“2区”, “3”=>“第3区”, “4”=>“第4区”, “5”=>“第5区”, ; $thana_arr=数组 “1”=>“Thana 1”, “2”=>“Thana 2”, “3”=>“Thana 3”, '4'=>'Thana 4', “5”=>“Thana 5”, ;