Autosuggest Probleme mit FF

Status
Nicht offen für weitere Antworten.

dennis-sauer

Erfahrenes Mitglied
Hallo zusammen,

ich bastel gerade an einer Autosuggestfunktion, soweit läuft auch alles bis auf ein gravierendes Problem. Ich möchte natürlich wenn Vorschläge ausgegeben werden und jemand auf einen Vorschlag klickt dieser auch im Formularfeld übernommen wird. Doch irgendwie klappts nicht. Vor allem nicht im FF (da passiert nix außer das in der Adresszeile eine # hinter die Adresse gefügt wird) - im IE klappts hin und wieder, aber niemals wenn man direkt auf den Text klickt sondern daneben :confused: :confused:

Hier mal der Ausschnitt aus der .php Datei

PHP:
<?php
    $searchq        =    strip_tags($_GET['q']);
    $getRecord_sql    =    'SELECT * FROM '.$SQL_FROM.' WHERE '.$SQL_WHERE.' LIKE "'.$searchq.'%"';
    $getRecord        =    mysql_query($getRecord_sql);
    if(strlen($searchq)>0){
    while ($row = mysql_fetch_array($getRecord)) {
    echo "<ul>";
    echo "<li><a href=\"#\" onClick=fill(\"".$row['name']."\")>".$row['name']."</a></li>";
    echo "</ul>";
    }} ?>
Und hier der Ausschnitt aus der .js Datei

Code:
function fill(i) {

e = document.getElementById('search-q');
e.value=i;

document.getElementById('results').style.display="none";
}
Ich hoffe jemand kann mir sagen wo mein Fehler liegt?

Danke und Grüße

Dennis
 
PHP:
<?php
    $searchq        =    strip_tags($_GET['q']);
    $getRecord_sql    =    'SELECT * FROM '.$SQL_FROM.' WHERE '.$SQL_WHERE.' LIKE "'.$searchq.'%"';
    $getRecord        =    mysql_query($getRecord_sql);
    if(strlen($searchq)>0){
    echo "<ul>";
    while ($row = mysql_fetch_array($getRecord)) { 
    ?>

    <li><a href="#" onClick="fill('<php echo $row['name']; ?>');"><php echo $row['name']; ?></a></li>
   
    <?php
    }
    echo "</ul>";
} 
?>
Eigentlich würde ich das <a-Tag sogar weg lassen und das onclick event aufs <li-Tag setzen.
PHP:
<li onClick="fill('<php echo $row['name']; ?>');"><php echo $row['name']; ?></li>
 
Hallo,

danke erstmal für deine Antwort... Ich hab das mal ohne "href" ausprobiert. Da tut sich dann gar nix... Die Liste wird angezeigt ich kann aber nix anklicken sodass es ins Formularfeld übernommen wird.

Sieht jetzt so aus:

PHP:
<?php
    $searchq        =    strip_tags($_GET['q']);
    $getRecord_sql    =    'SELECT * FROM '.$SQL_FROM.' WHERE '.$SQL_WHERE.' LIKE "'.$searchq.'%"';
    $getRecord        =    mysql_query($getRecord_sql);
    if(strlen($searchq)>0){
    echo "<ul>";
    while ($row = mysql_fetch_array($getRecord)) { 
    ?>

    <li onClick="fill('<?php echo $row['name']; ?>');"><?php echo $row['name']; ?></li>     
    <?php
    }
    echo "</ul>";
} 
?>

Grüße
 
Javascript:
function fill(i) {

e = document.getElementById('search-q');
e.value=i;

document.getElementById('results').style.display="none";
}

Existiert das Feld search-q überhaupt?!
Bau doch mal ein alert in die Funktion um zu sehen ob sie überhaupt aufgerufen wird.
Zu guter letzt könntest du noch prüfen ob die FireFox Fehlerkonsole o.ä. irgendwas ausspuckt.
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

also "search-q" existiert - ja... :)

Bin grad auf der Arbeit und erst wieder spät Zuhause, aber selbst wenn, müsste ich nicht zumindest die Zeile die ich ja verlinke anklicken können, mal abgesehen davon das nix passiert!

Grüße
 
Moin,

sofern du eine Maus hast, kannst du auf alles Klicken, was du siehst.
Wenn du eine Hand als Mauszeiger über den <li>'s haben möchtest, dann kannst du dies per CSS regeln.

Zum Thema:
Anstatt PHP-Code zu Posten, der für JS unerheblich ist, poste den HTML-Code, den dein PHP-Code erzeugt.
 
Was ist wenn du mal Anführungszeichen um den Attribut-Wert packst?

HTML:
<li onClick='fill( "hallo welt" );' > ... </li>
 
Status
Nicht offen für weitere Antworten.
Zurück