试图添加';字段组';与';添加更多';以自定义模块形式在drupal中

试图添加';字段组';与';添加更多';以自定义模块形式在drupal中,drupal,drupal-7,Drupal,Drupal 7,我一直在尝试在drupal 7中编写一个自定义模块,其中包含一个表单,其中包含一组字段,并带有“Field Collection”中的“AddMore”选项(不想使用模块,但要编写控制代码)。我试图找到一个好的例子,但没有成功。有人能建议如何进行吗?Plz 提前感谢。$form['education']['languages']=array( $form['education']['languages'] = array( '#type' => 'fieldset',

我一直在尝试在drupal 7中编写一个自定义模块,其中包含一个表单,其中包含一组字段,并带有“Field Collection”中的“AddMore”选项(不想使用模块,但要编写控制代码)。我试图找到一个好的例子,但没有成功。有人能建议如何进行吗?Plz

提前感谢。

$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']; }`
试试这个方法

示例链接:


单击“教育”选项卡

感谢您的帮助。但不幸的是,我无法保存新添加的内容。你能建议一下吗?我也不能这样做。有人能帮忙吗?