Hallo!
Ich habe mir aus verschiedenen Scripts nen Suchscript für meine Webseite zusammengebastelt. Das klappt auch alles ganz gut - und macht mich fast komplett glücklich
Allerdings fehlt mir noch eine wichtige Funktion: Wenn ich in mein input-Feld einen Suchbegriff eingebe dann findet er immer nur die Einträge aus meinem Array ,wo dieser Begriff am Anfang steht.
Aber ich möchte auch das in meinem select-Feld ausgegeben bekommen, wo der Begriff z.B. erst an 3. Stelle steht.
Ich hab auch schon google und Co bemüht und herausgefunden, dass man sowas mit wohl einen RegExp macht. Allerdings hab ich als javascript- Änfängerin keine Ahnung wo und wie ich das in meinem Code einbaue.
Hier mal der Teil des Script, wo es ums vervollständigen geht
Hier mein Formular:
Wie kann ich nun erreichen, dass in meinem Select-feld wenn ich zB. nach "Formular" suche, 'Adresse für Formular', 'Formularbriefe' und 'Adressformular zur Auswahl stehen?
Vielen Dank schonmal für eure Hilfe!
Ich habe mir aus verschiedenen Scripts nen Suchscript für meine Webseite zusammengebastelt. Das klappt auch alles ganz gut - und macht mich fast komplett glücklich
Allerdings fehlt mir noch eine wichtige Funktion: Wenn ich in mein input-Feld einen Suchbegriff eingebe dann findet er immer nur die Einträge aus meinem Array ,wo dieser Begriff am Anfang steht.
Aber ich möchte auch das in meinem select-Feld ausgegeben bekommen, wo der Begriff z.B. erst an 3. Stelle steht.
Ich hab auch schon google und Co bemüht und herausgefunden, dass man sowas mit wohl einen RegExp macht. Allerdings hab ich als javascript- Änfängerin keine Ahnung wo und wie ich das in meinem Code einbaue.
Hier mal der Teil des Script, wo es ums vervollständigen geht
PHP:
<script language="JavaScript">
/* Autovervollständigen */
begriffe = new Array('Adresse für Formular',
'Formularbriefe',
'Preiseliste',
'Adressenliste',
'Adressformular');
function startAutoComplete(textfeld)
{
if(!self.event || String.fromCharCode(event.keyCode).search(/[\w\-0-9\.\,]/) == -1){
return;
}
tempname = textfeld.value.toLowerCase();
var results = new Array();
for(i=0; i<begriffe.length; i++){
if(begriffe[i].toLowerCase().indexOf(tempname) == 0 && tempname.length != begriffe[i].length){
results.push(begriffe[i]);
}
}
deleteResults();
addResults(results);
}
function deleteResults()
{
var y = document.search.matches.length;
for(var x=0; x<y; x++){
document.search.matches.options[0] = null;
}
}
function addResults(res)
{
for(var x=0; x<res.length; x++){
result = new Option(res[x],res[x],false,false);
document.search.matches.options[document.search.matches.options.length] = result;
}
}
Hier mein Formular:
HTML:
<form name="search" onSubmit="return findeSeite(this.string.value);">
<input name="string" type="text" size=20 value="Bitte Suchbegriff eingeben" onKeyUp="startAutoComplete(this);" onChange="n = 0;" onfocus="if(this.value=='Bitte Suchbegriff eingeben')this.value='' " >
<br>
<select size="1" style="width:215px" " name="matches" id="matches" onchange="document.search.string.value=this.value"><option selected="selected" >---Auswahlmöglichkeiten---</option></select>
<input type="submit" value="SUCHEN">
Wie kann ich nun erreichen, dass in meinem Select-feld wenn ich zB. nach "Formular" suche, 'Adresse für Formular', 'Formularbriefe' und 'Adressformular zur Auswahl stehen?
Vielen Dank schonmal für eure Hilfe!