2013-05-29 2 views
0

드루팔 (Drupal 7)에 'add more'옵션을 가진 필드 그룹을 가진 사용자 정의 모듈을 작성하려고했습니다. 'Field Collection'(모듈을 사용하지만 컨트롤 코드를 작성하지 않으려는 경우). 좋은 모범을 보았으나 성공하지 못했습니다. 아무도 진행 방법을 제안 할 수 있습니까? Plz !!'add more'with 'add more'with custom module form

미리 감사드립니다.

URL 당신의 도움이 Vinox의 탭 교육을

답변

0
$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']; 
    }` 

이 방법을

샘플 링크를 시도하십시오. 하지만 아쉽게도 새로 추가 된 콘텐츠를 저장할 수 없습니다. 제발 제안 할 수 있니?

+0

감사를 클릭 : – tina

+0

나는 이것을 할 수 없다. 누구든지이 문제를 해결할 수 있습니까? – Charles