2个按钮在同一个组件上进行更改(drupal)

时间:2014-12-17 14:13:45

标签: php drupal

On Drupal(.module)我有2个按钮可以改变字段的文本,但是其中一个按钮没有应用我想要的更改。实际上,我认为$ form_state中的内容已被更改,但显示文本却没有。 一个按钮用于添加所选的职业级别'到textarea。 另一个按钮用于删除从textarea添加的最后一个career_level。 我在函数form_alter上有这段代码:

$form['user_profile_form']['fields']['career_level'] = array(
        '#weight' => '51',
        '#type' => 'select',
        '#options' => $levels,
        '#title' => t('Career Level')
    );
    $form['user_profile_form']['fields']['remove_level'] = array(
        '#type' => 'button', 
        '#name' => 'remove_level',
        '#value' => t('Remove Level from Career Path'), 
        '#weight' => '52',
        '#ajax' => array(
            'callback' => 'sei_developers_remove_from_career_path',
            'wrapper' => 'career_path',
            'effect' => 'fade'
        )
    );
    $form['user_profile_form']['fields']['add_to_path'] = array(
        '#type' => 'button', 
        '#name' => 'add_to_path',
        '#value' => t('Add to Career Path'), 
        '#weight' => '52',
        '#ajax' => array(
            'callback' => 'sei_develepors_add_to_career_path',
            'wrapper' => 'career_path',
            'effect' => 'fade'
        )
    );
    $form['user_profile_form']['fields']['career_path'] = array(
        '#default_value' => ($isEdit ? $items[0]['career_path'] : ''),
        '#weight' => '53',
        '#type' => 'textarea',
        '#maxlength' => 1000,
        '#title' => t('Career Path'),
        '#prefix' => '<div id="career_path">',
        '#suffix' => '</div>',
        '#disabled' => TRUE,
    );
    if ($form_state['triggering_element']['#name'] == 'add_to_path') {
        $form['user_profile_form']['fields']['career_path']['#value'] = $form_state['values']['career_path'] . ' -> ' . $form_state['values']['career_level'];
        $form_state['values']['career_path'] = $form['user_profile_form']['fields']['career_path']['#value'];
        $form_state['rebuild'] = TRUE;
    }
    if ($form_state['triggering_element']['#name'] == 'remove_level') {
        $pos = strripos($form_state['values']['career_path'],'->');
        $form['user_profile_form']['fields']['career_path']['#value'] = substr($form_state['values']['career_path'], 0, $pos);
        $form_state['values']['career_path'] = $form['user_profile_form']['fields']['career_path']['#value'];
    }`

我必须对两个按钮做些什么才能做出正确的改变?

0 个答案:

没有答案