试图添加';字段组';与';添加更多';以自定义模块形式在drupal中
我一直在尝试在drupal 7中编写一个自定义模块,其中包含一个表单,其中包含一组字段,并带有“Field Collection”中的“AddMore”选项(不想使用模块,但要编写控制代码)。我试图找到一个好的例子,但没有成功。有人能建议如何进行吗?Plz 提前感谢。试图添加';字段组';与';添加更多';以自定义模块形式在drupal中,drupal,drupal-7,Drupal,Drupal 7,我一直在尝试在drupal 7中编写一个自定义模块,其中包含一个表单,其中包含一组字段,并带有“Field Collection”中的“AddMore”选项(不想使用模块,但要编写控制代码)。我试图找到一个好的例子,但没有成功。有人能建议如何进行吗?Plz 提前感谢。$form['education']['languages']=array( $form['education']['languages'] = array( '#type' => 'fieldset',
$form['education']['languages']=array(
$form['education']['languages'] = array(
'#type' => 'fieldset',
'#title' => t('Languages'),
'#prefix' => '<div id="div_languages-fieldset-wrapper">',
'#suffix' => '</div>',
);
for ($i = 0; $i < $form_state['language_num']; $i++)
{
$form['education']['languages'][$i]['labels'] = array(
'#prefix' => '<h1 id = "stu_form_label">',
'#type' => 'item',
'#title' => t('Form :'.($i+1)),
'#suffix' => '</h1>',
);
// Language Drop down box
$option_language = _get_language_mstr();
$form['education']['languages'][$i]['language'] = array(
'#prefix' => '<div class="container-inline bottom_space languages_drop_down">',
'#options' => $option_language,
'#type' => 'select',
'#title' => t('Language'),
'#suffix' => '</div>',
);
// Level Drop down box
$option_Level = _get_level_mstr();
$form['education']['languages'][$i]['level'] = array(
'#prefix' => '<div class="container-inline bottom_space languages_drop_down">',
'#options' => $option_Level,
'#type' => 'select',
'#title' => t('Level'),
'#suffix' => '</div>',
);
}
if ($form_state['language_num'] > 1)
{
$form['education']['languages']['remove_name'] = array(
'#type' => 'submit',
'#value' => t('Remove last language'),
'#limit_validation_errors' => array(),
'#submit' => array('remove_one_language'),
'#ajax' => array(
'callback' => 'add_more_callback_language',
'wrapper' => 'div_languages-fieldset-wrapper',
),
);
}
$form['education']['languages']['add_name'] = array(
'#type' => 'submit',
'#value' => t('Add language'),
'#limit_validation_errors' => array(),
'#submit' => array('add_one_language'),
'#ajax' => array(
'callback' => 'add_more_callback_language',
'wrapper' => 'div_languages-fieldset-wrapper',
),
);
function add_more_callback_language($form, $form_state) {
return $form['education']['languages'];
}`
“#类型”=>“字段集”,
“#title”=>t(“语言”),
“#前缀”=>”,
“#后缀”=>”,
);
对于($i=0;$i<$form_state['language_num'];$i++)
{
$form['education']['languages'][$i]['labels']=array(
“#前缀”=>”,
“#类型”=>“项目”,
“#title”=>t('Form:'($i+1)),
“#后缀”=>”,
);
//语言下拉框
$option\u language=\u get\u language\u mstr();
$form['education']['languages'][$i]['language']=array(
“#前缀”=>”,
“#选项”=>$option_语言,
“#键入”=>“选择”,
“#title”=>t(“语言”),
“#后缀”=>”,
);
//水平下拉框
$option_Level=_get_Level_mstr();
$form['education']['languages'][$i]['level']=array(
“#前缀”=>”,
“#选项”=>$option_级别,
“#键入”=>“选择”,
“#title”=>t('Level'),
“#后缀”=>”,
);
}
如果($form_state['language_num']>1)
{
$form['education']['languages']['remove_name']=array(
“#键入”=>“提交”,
“#value”=>t('Remove last language'),
“#限制_验证_错误”=>array(),
“#提交”=>数组('remove#u one_language'),
“#ajax”=>数组(
“回调”=>“添加更多回调语言”,
“wrapper'=>“div_languages-fieldset-wrapper”,
),
);
}
$form['education']['languages']['add_name']=array(
“#键入”=>“提交”,
“#value”=>t('Add language'),
“#限制_验证_错误”=>array(),
“#提交”=>array('add#one_language'),
“#ajax”=>数组(
“回调”=>“添加更多回调语言”,
“wrapper'=>“div_languages-fieldset-wrapper”,
),
);
函数add\u more\u callback\u语言($form,$form\u state){
返回$form['education']['languages'];
}`
试试这个方法
示例链接:
单击“教育”选项卡感谢您的帮助。但不幸的是,我无法保存新添加的内容。你能建议一下吗?我也不能这样做。有人能帮忙吗?