Mit dieser Modifikation werden Inputfelder beim Schreiben automatisch mit vorgegeben Wörter ausgefüllt.
Hier stelle ich euch zwei Einbauvarianten vor.
Variante A wenn man wenige wörter hat.
Variante B wenn man ein ganzes Datenbankfeld verwenden möchte.
Demo : DEMO Als Beispiel habe ich die Inputfelder der search_form.html genommen.
Neue Datei:
autocomplete.js
tage.js //optional
usernamen.js //optional
Geänderte Dateien:
search_form.html
search.php //optional
1.) FÜR BEIDE VARIANTEN: Ladet euch die Datei
moautocomplete.zip von hier herrunter.
entpackt die datei autocomplete.js und speichtert sie auf euren webserver in root/js/autocomplete/ ab.
Variante A wenn man wenige wörter hat
2.) erstellt die beiden nachfolgenden Dateien und speichtert sie auf euren webserver in root/js/autocomplete/ ab.
Die beiden Dateien sollen nur als Beispiel dienen, ihr könnt sie natürlich auch anders benennen und mit euren eigenen Inhalten füllen.
monate.js:
var monate = new Array(
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December')
usernamen.js:
var usernamen = new Array(
'Mickey',
'Mouse',
'Fix',
'Foxi',
'Lupo',
'Daisy',
'Donald',
'Dagobert')
3.) suche in templates/YourTemplates search_form.html:
<form method="post" action="{url_search}">
fügt darüber ein:
<SCRIPT type="text/javascript" src="./js/autocomplete/autocomplete.js"></SCRIPT>
<SCRIPT type="text/javascript" src="./js/autocomplete/monate.js"></SCRIPT>
<SCRIPT type="text/javascript" src="./js/autocomplete/tage.js"></SCRIPT>
suche:
<input type="text" name="search_keywords" size="40" value="{search_keywords}" class="input" />
und ersetzt es mit:
<input type="text" name="search_keywords" size="40" value="{search_keywords}" class="input" autocomplete="array:monate"/>
suche:
<input type="text" name="search_user" size="40" value="{search_user}" class="input" />
und ersetzt es mit:
<input type="text" name="search_user" size="40" value="{search_user}" class="input" autocomplete="array:usernamen"/>
Variante B wenn man ein ganzes Datenbankfeld verwenden möchte.
2.) suche in templates/YourTemplates search_form.html:
<form method="post" action="{url_search}">
fügt darüber ein:
<SCRIPT type="text/javascript" src="./js/autocomplete/autocomplete.js"></SCRIPT>
suche:
<input type="text" name="search_keywords" size="40" value="{search_keywords}" class="input" />
und ersetzt es mit:
<input type="text" name="search_keywords" size="40" value="{search_keywords}" class="input" autocomplete="list:{sword_text}"/>
suche:
<input type="text" name="search_user" size="40" value="{search_user}" class="input" />
und ersetzt es mit:
<input type="text" name="search_user" size="40" value="{search_user}" class="input" autocomplete="list:{suser_name}"/>
3.) suche in root/search.php:
$org_search_user = $search_user;füge darunter ein:
//#################################### Start Mod AutoComplete #################################################
$suser_name = "";
$sword_text = "";
$sql = "SELECT u.user_name, w.word_text
FROM (".USERS_TABLE." u, ".WORDLIST_TABLE." w)
WHERE word_text < 1 AND LENGTH(word_text) > 2 ";
$result = $site_db->query($sql);
while ($row = $site_db->fetch_array($result)) {
$suser_name[]= $row['user_name'];
$sword_text[]= $row['word_text'];
}
$suser_name = implode("|", (array_unique($suser_name)));
$sword_text = implode("|", (array_unique($sword_text)));
//#################################### End Mod AutoComplete #################################################
suche:
"search_keywords" => format_text(stripslashes($org_search_keywords), 2),
füge darüber ein:
//#################################### Start Mod AutoComplete #################################################
"suser_name" => $suser_name,
"sword_text" => $sword_text,
//#################################### END Mod AutoComplete #################################################
Variante B sollte Bitte jemand einmal testen mit wirklich vielen "keywords" und "usernamen" bei mir gab es keine Probleme, aber in ermangelung von usern
auf meiner Demo Seite konne ich das nicht wirklich testen, Danke.
Viel Spass!
mfg Andi