2016-12-08 5 views
0

선택 목록에서 항목을 선택한 후 텍스트 입력란을 자동 완성하려고합니다. 내 말은 : 먼저 사용자가 선택 목록에서 항목을 선택한 다음 3 개의 텍스트 필드가 추가로 표시되고 어떤 텍스트 필드가 선택되었는지에 따라 고유 한 값을 부여하기를 원합니다.drupal7의 자동 완성 필드

+0

자세한 내용을 확인하십시오. 어쩌면 당신이 시도한 것과 발견 한 문제를 추가 할 수 있습니다. – zuazo

+0

선택 목록이있는 콘텐츠 유형이 있습니다. 선택 목록의 경우 분류를 사용했습니다. 선택 목록은 회사 목록이며 다른 필드는 텍스트 필드입니다. 그들은 회사의 위치, 국가 및 전화에 대한 정보를 가지고 있습니다. 회사를 선택하면 자체 국가와 위치 및 전화가 있으므로 자동으로 채우고 싶습니다. 계층 적 목록을 사용하여 시도했지만 단 하나의 목록 만 있기 때문에 작동하지 않았습니다. autofill 모듈도 시험해 보았지만 작동하지 않았습니다. @zuazo – Kris

답변

0

Drupal "Ajax framework"를 사용해야합니다. hook_form_alter 함수로 필드를 준비하십시오.

function hook_form_alter(&$form, &$form_state, $form_id) { 
    if (isset($form['type']) && $form['type']['#value'] . '_node_settings' == $form_id) { 
    $form['select_field'] = array(
     '#ajax' => array(
     'callback' => '_mymodule_ajax_example_simplest_callback', 
     'wrapper' => 'replace_textfield_div', 
     ), 
    ); 

    // This entire form element will be replaced with an updated value. 
    $form['textfield_to_autofill'] = array(
     '#prefix' => '<div id="replace_textfield_div">', 
     '#suffix' => '</div>', 
    ); 
    } 
} 
function _mymodule_ajax_example_simplest_callback(&$form, $form_state) { 
    // The form has already been submitted and updated. We can return the replaced 
    // item as it is. 
    $commands = array(); 
    if($form_state['values']['select_field'][LANGUAGE_NONE][0]['value'] == "some_value"){ 
    $form['textfield_to_autofill'][LANGUAGE_NONE][0]['value']['#value'] = "some_value"; 
    $commands[] = ajax_command_replace("#replace_textfield_div", render($form['textfield_to_autofill'])); 
    } 
    $page = array('#type' => 'ajax', '#commands' => $commands); 
    ajax_deliver($page); 
} 

ajax framework에 도움을주는 링크입니다.

+0

좋은 답변, 감사합니다! – Kris