erstmal danke für deine antwort und sorry für den "müll".
mein problem ist ja, dass ich mit den vorhandenen plugins nicht klar gekommen bin und daher erstmal das grundscript von harald kirscher ausprobiert habe, um zu sehen, wo mein denkfehler ist. also ohne contao-framework.
ich meine, das so ähnlich auch bei dir in deinem testmodul gesehen zu haben und in diesem thread hattest du eine ähnliche frage gestellt:
https://www.contao-community.de/show...highlight=ajax
aber da gab es auch keine antwort, die mir geholfen hätte.
nach weiterem langen testen und dank deiner nochmaligen erklärung funktioniert es nun endlich, vielen dank.
eine frage noch: funktionieren auch mehrere solcher suchfelder in einem formular?
wie müsste ich das objekt dann erstellen?
in meinem frontendmodul habe ich ein formular mit 2 texteingabefeldern, in einem kann man nach einem namen und in einem zweiten feld nach dem ort suchen. beide möchte ich nun mit autocomplete vervollständigen. und das erste funktioniert jetzt.
hier nochmal meine schrittfolge für das einfache suchfeld, vielleicht hilft es ja auch jemand anderem.
in der config.php des moduls registriere ich den hook:
PHP-Code:
$GLOBALS['TL_HOOKS']['getAutoCompleterChoices'][] = array('AcTestSearch', 'getChoices');
in der compile()-funktion meines frontend-moduls erstelle ich das autocompleter objekt:
PHP-Code:
$objAutoCompleter = new AutoCompleter();
$objAutoCompleter->formId = 'ctrl_keywords';
$objAutoCompleter->minLength = '1';
$objAutoCompleter->width = 'inherit';
$objAutoCompleter->maxChoices = '10';
$objAutoCompleter->zIndex = '35';
$objAutoCompleter->delay = '400';
$objAutoCompleter->generate();
in meinem template habe ich das sucheingabefeld:
PHP-Code:
<input type="search" name="keywords" id="ctrl_keywords" class="text" value="<?php echo $this->defaultValue; ?>" onblur="if(this.value == '') { this.value='<?php echo $this->defaultValue; ?>'}" onfocus="if (this.value == '<?php echo $this->defaultValue; ?>') {this.value=''}">
in der AcTestSearch.php die abfrage in der funktion getChoices()
PHP-Code:
public function getChoices()
{
$this->import('Database');
$intAcid = str_replace('ctrl_keywords', '', $this->Input->get('acid'));
$arrWhere = array();
$arrValues = array();
$arrWhere[] = 'keyword LIKE ?';
$arrValues[] = '%' . strtolower($this->Input->post('value')) . '%';
// get all keywords from the database
$objKeyword = $this->Database->prepare('SELECT DISTINCT keyword FROM tl_keywords WHERE ' . implode(' AND ', $arrWhere) . ' ORDER BY keyword DESC')
->limit(10)
->executeUncached($arrValues);
if ($objKeyword->numRows > 0)
{
return $objKeyword->fetchEach('keyword');
}
}
}
dann hab ich noch die css von harald kirschner eingebunden und das wars.
korrigier mich, wenn ich wieder was falsches geschrieben hab.
viele grüße
silvia