1

. 그러나 결과는 자동 완성과 함께 나오지 않습니다. 지금 내 최신 코드를 게시드루팔 사용자 지정 양식 및 자동 완성 문제

,

가 텍스트 필드가
$form['town'] = array(
'#type' => 'textfield', 
'#required' => TRUE, 
'#autocomplete_path' => 'hfind/town/autocomplete', 
); 

메뉴 기능 코드가

function hfind_menu() { 
    $items = array(); 
    $items['hfind/town/autocomplete'] = array (
    'title' => 'Autocomplete for cities', 
    'page callback' => 'hfind_town_autocomplete', 
    'access arguments' => array('use autocomplete'), 
    'type' => MENU_CALLBACK 
    ); 
return $items; 
} 

콜백 함수 코드가

function hfind_town_autocomplete($string){ 
    $matches = array(); 
    $result = db_select('towns', 't') 
    ->fields('t', array('town_name')) 
    ->condition('town_name', '%' . db_like($string) . '%', 'LIKE') 
    ->execute(); 
    foreach ($result as $row) { 
    $matches[$row->city] = check_plain($row->city); 
    } 
    drupal_json_output($matches); 
} 

내가이 엄마를 희망

코드 y 최종 편집.

현재의 상황은, 자동 완성이 작동됩니다

URL은/마을/자동 완성/MTW

을 hfind하지만 데이터베이스에서 데이터를 찾을 수 없습니다입니다. 나는 그것을 고칠 수없는 이유를 발견했다. 마지막 함수에서 $ 문자열이 '검색 쿼리'여야하지만, 항상 데이터베이스를 '자동 완성'으로 쿼리하기 때문에 추가되었습니다. 나는 $ string 변수가 항상 사용자가 입력 한 값 대신 'autocomplete'값을 갖는 것을 의미합니다.

또 하나의 문제는 심지어 양식에 검색 자동 완성에 액세스하는 사용자의 모든 유형에 권한을 제공 한 후, 게스트 사용자는 기능을 사용할 수 없습니다입니다.

누군가가 나를 도와주세요 제발 ..

답변

0
`drupal_json_output()` instead of `drupal_to_js` and remove `print` . 
<code> 
hook_menu() { 
$items['cnetusers/autocomplete'] = array(
    'title' => 'Auto complete path', 
    'page callback' => 'cnetusers_employees_autocomplete', 
    'page arguments' => array(2, 3, 4, 5), 
    'access arguments' => array('access user profiles'), 
    'type' => MENU_CALLBACK, 
); 
return $item; 
} 
// my autocomplete function is like this 
function cnetusers_employees_autocomplete() { 
    // write your sql query 
    $matches["$record->ename $record->elname [id: $record->uid]"] = $value; 
    } 
    if (empty($matches)) { 
    $matches[''] = t('No matching records found.'); 
    } 
    drupal_json_output($matches); 
} 

$form['disc_info']['approval'] = array(
     '#type' => 'textfield', 
     '#title' => t('Approval By'), 
     '#autocomplete_path' => 'cnetusers/autocomplete', 
    ); 
</code> 
+0

나는 시도했다. 그래도 작동이 안되는. 하지만이 문제는 입력 할 때 텍스트가 포함 된 요청을 볼 수 없기 때문에이 문제가 내 문제가 아님을 알고 있습니다. 텍스트 필드에 자동 완성 기능이 활성화되어 있지 않습니다. –

+0

당신이 준 자동 완료 기능에 대한 경로를 확인하려고합니다. 하나의 작은 예를 들어 답을 편집했고 저에게 도움이되었습니다. –

+0

감사합니다 Ranjeet, 시도하고 많은 솔루션을 시도, 아무것도 작동하지 않습니다. –