tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
989
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von newwarrior
    newwarrior newwarrior ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Ort
    Holzdorf
    Beiträge
    168
    Hi,

    ich habe nach einem Tutorial ein Autocomplete in mein Formular eingebaut:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    
        <tr>
            <td>Empf&auml;nger:</td>
            <td><input id="autocomplete" type="text" name="reciever" class="ac_input" size="42" /></td>
        </tr>
     
    <script type="text/javascript">
      function findValue(li) {
     if( li == null ) return alert("No match!");
     
    // if coming from an AJAX call, let's use the CityId as the value
    if( !!li.extra ) var sValue = li.extra[0];
     
    // otherwise, let's just display the value in the text box
    else var sValue = li.selectValue;
     
    //alert("The value you selected was: " + sValue);
    }
     
    function selectItem(li) {
    findValue(li);
    }
     
    function formatItem(row) {
    return row[0];
    }
     
    function lookupLocal(){
    var oSuggest = $("#autocomplete")[0].autocompleter;
     
    oSuggest.findValue();
     
    return false;
    }
     
     
    $("#autocomplete").autocomplete(
    "tpl/html/search_user.php",
    {
    delay:10,
    minChars:3,
    matchSubset:1,
    matchContains:1,
    cacheLength:10,
    onItemSelect:selectItem,
    onFindValue:findValue,
    formatItem:formatItem,
    autoFill:true
    }
    );
     
    </script>

    Hier der entsprechende PHP Code:

    PHP-Code:
    <?php
    session_start
    ();

    require_once(
    '../../settings/dbconnect.php');


    $res mysql_query("SELECT playername FROM user WHERE playername LIKE '%".$_GET['q']."%' "$db) OR die(mysql_error()); 
    while(
    $row mysql_fetch_object($res)) {
    echo 
    $row->playername;

    }

    ?>
    Ich habe in der DB mehrere User mit den Namen Bluescreen, Bluescree1, Bluescree2.
    Wenn ich jetzt dir ersten drei Buchstaben eingebe, werden alle Namen in einer Zeile angezeigt und auch direkt in den Input geschrieben.
    Selbst wenn ich sie durch eine <br /> untereinander schreibe, ist es so, das beim drauf klicken gleich alle Namen eingetragen werden und nich nur den Name auf den ich geclickt habe.
    Warum ist das so?

    Danke
     

  2. #2
    Maik Tutorials.de Gastzugang
    Hi,

    hast du zwischenzeitlich die Ursache lokalisert, oder warum hast du das Thema (kommentarlos) als erledigt markiert?

    mfg Maik
     

  3. #3
    Avatar von newwarrior
    newwarrior newwarrior ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Ort
    Holzdorf
    Beiträge
    168
    Ja habe ich.
    Es lag an der DB Abfrage, habe sie angepasst und jetzt klappt alles.
     

  4. #4
    Maik Tutorials.de Gastzugang
    Und warum teilst du das hier dann nicht direkt mit, wenn du schon zum "Abhaken" zurückkehrst?

    Stattdessen müssen wi bei dir Rückfrage halten

    Leute gibt's.... da kriegste die Tür nicht zu

    mfg Maik
     

  5. #5
    Avatar von newwarrior
    newwarrior newwarrior ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Ort
    Holzdorf
    Beiträge
    168
    Kam ich noch nicht zu.
    Musst eben noch einlaufen, hier die Lösung:

    PHP-Code:
    <?php
    session_start
    ();

    require_once(
    '../../settings/dbconnect.php');
    require_once(
    '../../functions/functions.php');


    $res mysql_query("SELECT playername, nation FROM user WHERE playername LIKE '%".$_GET['q']."%' "$db) OR die(mysql_error()); 
    while(
    $row mysql_fetch_object($res)) {
    echo 
    $row->playername.'|'.get_nation_flag($row->nation)."\n";

    }

    ?>
    Und hier nochmal den angepassten JS Teil:

    Code :
    1
    2
    3
    
    function formatItem(row) {
    return row[0] + " (Nation: " + row[1] + ")";
    }

    Warum es genau danach geklappt hat, kann ich nicht sagen.
    Ich vermute mal, dass das Plugin autocomplete zwei Anweisungen erwartet.
     

Ähnliche Themen

  1. [JQuery] Ui Autocomplete - Leere Ergebnisliste
    Von supercat1510 im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 13.01.11, 13:22
  2. Problem mit jQuery Autocomplete
    Von Sirakov im Forum Javascript & Ajax
    Antworten: 24
    Letzter Beitrag: 28.08.10, 22:19
  3. [jQuery] Autocomplete
    Von ropueh im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 29.06.10, 01:13
  4. jquery autocomplete - Feldinhalt übergeben
    Von NobodyBody im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 20.01.10, 09:04
  5. jquery autocomplete soll intern verlinken
    Von Axel1971 im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 23.12.09, 21:26