[jQuery] Probleme mit dem Autocomplete

newwarrior

Erfahrenes Mitglied
Hi,

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

Code:
    <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:
<?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
 
Hi,

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

mfg Maik
 
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 :rolleyes:

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

mfg Maik
 
Kam ich noch nicht zu.
Musst eben noch einlaufen, hier die Lösung:

PHP:
<?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:
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.
 
Zurück