Ich habe eine Schnellsuche auf meiner Seite in der mit Hilfe von Ajax bereits beim Schreiben nach passenden Ergebnissen gesucht wird.
Das Problem ist nur, dass wenn man den Begriff mit normaler Tippgeschw. reinschreibt, dass dann einige aufgelistete Ergebnisse doppelt angezeigt werden.
Das Script funktioniert folgendermaßen:

- bei onkeyup wird der divbereich unterhalb des Suchbegrifffeldes, in dem die vorgeschlagenen Ergebnisse stehen, geleert.
- mittels Ajax wird eine phpdatei aufgerufen, die mit den bisher eingegebenen Zeichen einen Datenbank durchsucht
- das Ergebnis wird mit Echo in Form von Javascript ausgegeben und von eine Callbackfunktion aufgenommen. Das Ergebnis sieht ungefähr so aus: "dwnlName = new Array('Downloadname');dwnlUrl = new Array('Downloadurl')"
- mit eval wird der ausgegebene Text verarbeitet und jedes Element in den Divbereich geschrieben.

Mir ist unklar wie es bei diesem Ablauf dazu kommen kann, dass nicht alle Elemente nicht vollständig gelöscht werden oder wie Elemente doppelt eingefügt werden sollten.

Hier noch der Code:
PHP-Code:
function suggest(searchtxt) {
    if(
searchtxt==''document.getElementById('suggestiontable').style.display 'none';
    
document.getElementById('suggestiontable').innerHTML ''// Divinhalt löschen
    
callServer("open/suggest.php?searchFor="+searchtxt,'showsuggest'); // Hiermit wird die phpdatei aufgerufen. 
}
function 
showsuggest(text) {
    eval(
text);
    if(
suggestionsName.length>0) {
    
document.getElementById('suggestiontable').style.display 'block';
    for(
sug=0;sug<suggestionsName.length;sug++) {
        
Element('a',document.getElementById('suggestiontable'),'href','?l=4&pid='+suggestionsId[sug],'TextNode',suggestionsName[sug]);
    }
    }
    else 
Element('a',document.getElementById('suggestiontable'),'href','#','style','color:red','TextNode','Kein Suchergebnis');