Autocomplete

function mymodule_myform() {
  $form['myfield'] = array(
    '#type' => 'textfield',
    '#title' => 'My field',
    '#autocomplete_path' => 'mymodule/autocomplete', // <--
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => 'Submit',
  );
  return $form;
}
function mymodule_menu() {
  $items['mymodule/autocomplete'] = array(
    'page callback' => 'mymodule_autocomplete',
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK,
  );
  return $items;
}
function mymodule_autocomplete($string) {
  // для примера, возвратим заголовки нод
  $result = db_select('node', 'n')
    ->fields('n', array('title'))
    ->condition('title', '%' . db_like($string) . '%', 'LIKE')
    ->range(0, 10)
    ->execute();
 
  $matches = array();
  foreach ($result as $row) {
    $matches[$row->title] = check_plain($row->title);
  }
 
  drupal_json_output($matches);
}