Skip to content

Instantly share code, notes, and snippets.

@kevinchampion
Created December 4, 2012 20:55
Show Gist options
  • Save kevinchampion/4208563 to your computer and use it in GitHub Desktop.
Save kevinchampion/4208563 to your computer and use it in GitHub Desktop.
Drupal 6 Autocomplete example
/**
* Autocomplete ajax helper to retrieve autocomplete options from textual mcard
* discount search.
*
* @param $search
* User entered search string.
*
* @return
* JSON listing of autocomplete search options.
*/
function mcard_search_autocomplete($search = '') {
$matches = array('discount 1', 'discount 2', 'discount 3');
watchdog('mcard', 'autocomplete search query: !query !args', array('!query' => '<pre>' . print_r($search, TRUE) . '</pre>', '!args' => '<pre>' . print_r($_GET, TRUE) . '</pre>'), WATCHDOG_NOTICE);
/*if ($search) {
$result = db_query_range("SELECT name FROM {users} WHERE LOWER(name) LIKE LOWER('%s%%')", $search, 0, 10); // only 10 results will show
while ($user = db_fetch_object($result)) {
$matches[$user->name] = check_plain($user->name);
}
}*/
drupal_json($matches); //Returns the data in JSON format
}
$form['search'] = array(
'#type' => 'textfield',
'#description' => t('Search for discounts'),
'#autocomplete_path' => 'treasury/mcard/discounts/autocomplete',
);
/**
* Implementation of hook_menu().
*/
function mcard_menu() {
$items['admin/settings/mcard'] = array(
'title' => 'Mcard',
'description' => 'Adjust Mcard discount settings',
'page callback' => 'drupal_get_form',
'page arguments' => array( 'mcard_discount_settings' ),
'access arguments' => array('administer mcard discounts'),
);
$items['admin/settings/mcard/discounts'] = array(
'title' => 'Mcard discount settings',
'description' => 'Adjust Mcard discount settings',
'page callback' => 'drupal_get_form',
'page arguments' => array( 'mcard_discount_settings' ),
'access arguments' => array('administer mcard discounts'),
'weight' => -5,
);
$items['treasury/mcard/discounts'] = array(
'title' => 'Discounts',
'description' => 'Search for discounts for holders of an MCard',
'page callback' => 'mcard_discounts_homepage',
'access arguments' => array('view mcard discounts'),
'type' => MENU_CALLBACK,
);
$items['treasury/mcard/discounts/ajax'] = array(
'title' => 'Ajax endpoint for search results',
'description' => 'Ajax requests get posted here and return search results',
'page callback' => 'mcard_search_results',
'access arguments' => array('view mcard discounts'),
'type' => MENU_CALLBACK,
);
$items['treasury/mcard/discounts/autocomplete/%'] = array(
'title' => 'Ajax autocomple endpoint for textual search',
'description' => 'Ajax requests get posted here and return autocomplete options',
'page callback' => 'mcard_search_autocomplete',
'page arguments' => array(4),
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment