0
선택 목록에서 항목을 선택한 후 텍스트 입력란을 자동 완성하려고합니다. 내 말은 : 먼저 사용자가 선택 목록에서 항목을 선택한 다음 3 개의 텍스트 필드가 추가로 표시되고 어떤 텍스트 필드가 선택되었는지에 따라 고유 한 값을 부여하기를 원합니다.drupal7의 자동 완성 필드
선택 목록에서 항목을 선택한 후 텍스트 입력란을 자동 완성하려고합니다. 내 말은 : 먼저 사용자가 선택 목록에서 항목을 선택한 다음 3 개의 텍스트 필드가 추가로 표시되고 어떤 텍스트 필드가 선택되었는지에 따라 고유 한 값을 부여하기를 원합니다.drupal7의 자동 완성 필드
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에 도움을주는 링크입니다.
좋은 답변, 감사합니다! – Kris
자세한 내용을 확인하십시오. 어쩌면 당신이 시도한 것과 발견 한 문제를 추가 할 수 있습니다. – zuazo
선택 목록이있는 콘텐츠 유형이 있습니다. 선택 목록의 경우 분류를 사용했습니다. 선택 목록은 회사 목록이며 다른 필드는 텍스트 필드입니다. 그들은 회사의 위치, 국가 및 전화에 대한 정보를 가지고 있습니다. 회사를 선택하면 자체 국가와 위치 및 전화가 있으므로 자동으로 채우고 싶습니다. 계층 적 목록을 사용하여 시도했지만 단 하나의 목록 만 있기 때문에 작동하지 않았습니다. autofill 모듈도 시험해 보았지만 작동하지 않았습니다. @zuazo – Kris