Problem mit jQuery Autocomplete

Hi,

ja soweit war ich schon:
PHP:
echo json_encode($row['value'])."\n";
Auch mit oder ohne Komma - hat beides leider auch nicht funktioniert.
Das Buch sagt:
..."Als Antwort erwartet das Plugin eine Liste mit durch Zeilenumbruch getrennten Werten..."...

Jetzt lass uns das Ding mal ans laufen bringen - kann doch nicht sein dass es seit 2 Tagen nicht klappt :D. Bin drauf und dran ein Kopfgeld auf die funktionierende Version auszusetzen :D...
 
1. Schmeisse dein Buch weg, die aktuellste Beschreibung findest du auf jquery.com
2. du sollst nicht jeden einzelnen Wert JSON-kodieren, sondern alle Werte in einem PHP-Array ablegen und diesen dann zum Schluss per json_encode() ausgeben
 
Das Buch ist super :D - auch wenns dem schnellen Entwicklungsprozess von JQuery UI nicht standhalten kann sind die anderen Dinge sehr wohl brauchbar - ich empfehle es jedem der mit JQuery arbeiten möchte und wie ich auch den haptischen Aspekt beim lesen eines Buches wichtig findet - soviel dazu :D...

Ja - habe ich auch versucht:
PHP:
$array = array();
while($row = mysql_fetch_assoc($res)){
                    $array[] = $row['value'];
                }
                echo json_encode($array);
So wird das array korrekt dargestellt:
["michaela","miranda"] beim Aufruf: _getReceiver.php?q=mi
Allerdings funktioniert es immer noch nicht...
Code:
$("input[name=receiver]").autocomplete({
       source: "content/_getReceiver.php",
       minLength: 2,
       delay: 0
    });
... so schaut der JQuery Code aus...
 
Zuletzt bearbeitet:
Ich hab mal bei deinem Beitrag auf "zitieren" geklickt, und siehe, da erscheint das Problem:eek:

So wird das array korrekt dargestellt:
["michaela","miranda"] beim Aufruf: _getReceiver.php?q=mi

Das rot markierte dort, das ist eine BOM.
Man sieht sie nicht, sie ist aber da, und verursacht den Fehler :D

Lösung: Speichere die _getReceiver.php ohne BOM(solltest du in deinem Editor einstellen können)
 
Zuletzt bearbeitet:
Jetzt verstehe ich nichts mehr - hab kaum verstanden was ein BOM sein soll (http://de.wikipedia.org/wiki/Byte_Order_Mark).

Wenn du dir sicher bist, dann bitte schreib einmal auf wie es aussehen soll bevor wir den Beitrag auf 5 Seiten verlängern müssen und die Datenbank ärgern - das wäre super hilfreich.

Was soll ich nun tun? Einen header setzen und eine Kodierung vorgeben? Und bitte was soll nun dieser BOM sein? Aus der Wikipedia Definition werde ich nicht wirklich schlau.

(Ich bin sicher wenn wir das Problem hier mit Lösung ausschreiben, werden andere Menschen die durch Google oder die Forensuche auf diesen Thread aufmerksam werden, auch zufrieden sein wenn sie beispielsweise dasselbe Problem haben).

Für alle die auch nicht wissen was ein BOM ist:
Als Byte Order Mark (BOM, dt. „Bytereihenfolge-Markierung“) wird das Unicode-Zeichen U+FEFF (zero-width non-breaking space) am Anfang eines Datenstroms bezeichnet, wo es als Signatur zur Definition der Byte-Reihenfolge und Kodierungsform in UCS/Unicode-Zeichenketten verwendet wird. http://de.wikipedia.org/wiki/Byte_Order_Mark

Und wie wird man es los :D?

Liebe Grüße
 
Zuletzt bearbeitet:
Also schreibe ich quasi eine Regex oder filtere aus dem Array schlichtweg den Wert (oder nicht Wert) "" raus und es sollte gehen?...
Leider nein - wenn ich das Produkt als String übergebe und diesen durchsuche werde ich nicht fündig - bzw. der Falschbytewert ist nicht auffindbar. Was kann ich nun tun?
Wie kann ich den ekligen Zusatz los werden?
 
Zuletzt bearbeitet:
Ist doch totaler Mist... :( - egal was ich tue, dieses Bytezeugs bleibt da - hat PHP keine Funktionen dafür oder JQuery bzw. JavaScript?
 
Das ist keine Frage von PHP oder Javascript, die Ursache musst du in deinem Editor suchen, mit dem du die Datei erstellst/bearbeitest.
 
Wie kann ich es finden/ sehen/ erkennen?
Was muss ich beachten? Ich weiss dass ich die Datei als UTF8, ANSI oder sonst was speichern kann - was sei hierbei gewählt? Ich nutze eigentlich immer UTF 8...
Ich habe alles durchsucht und habe keine Ahnung wie ich diese Bytes vermeiden kann - das ist deprimierend weil ich nach etwas suche das mit partout nicht angezeigt wird.
Ich habe den Code nun ver-hässlicht und sämtliche Leerzeichen oder Tabs vermieden, alles ist nun unübersichtlich am Rand...
Trotzdem kein Erfolg.
 
Zurück