process(new ArrayData(array ( 'Results' => $results ))); } /** * Constructor for AutoCompleteField * @param string $name The name of the field * @param string $title The label for the field * @param string $url A function or a URL for the results callback * @param string $val A default value (will be knocked out on focus) */ public function __construct($name, $title, $url = "autocomplete", $val = null) { parent::__construct($name, $title, $val); if(!stristr($url,'/')) { // url was passed as a function name.. use the current controller $url = Controller::curr()->Link($url); } $this->addExtraClass("autocomplete_input"); $this->addExtraClass("{'url' : '$url'}"); } /** * Require the dependencies and render the field * Note: The wrapper div is a hack. Position:relative would not work against * an input field in most browsers. :-( * @return string */ public function Field() { Requirements::javascript(THIRDPARTY_DIR.'/jquery/jquery.js'); Requirements::javascript(THIRDPARTY_DIR.'/jquery-metadata/jquery.metadata.js'); Requirements::javascript(THIRDPARTY_DIR.'/jquery-livequery/jquery.livequery.js'); Requirements::javascript('dataobject_manager/code/autocomplete_field/javascript/autocomplete_field.js'); Requirements::css('dataobject_manager/code/autocomplete_field/css/autocomplete_field.css'); return '