jQuery UI autocomplete - Problem bei der sourceauswertung ArrayString

comu78

Grünschnabel
Hi Zusammen,

ich hoffe Ihr könnt mir beim nachstehenden Problem mit dem JQuery UI autocomplete weiterhelfen, denn ich finde einfach den Fehler nicht.

Innerhalb eines Formulars habe ich ein Kategorien - Select, dessen Userauswahl an den Source des Autocomplete gekoppelt ist. Wählt hier der User eine Kategorie, wird ein entsprechender Request abgesetzt und mittels einer Klasse nur die Einträge mit der zugehörigen "Kategorie" aus der DB ausgelesen und als ArrayString Response der Autocomplete-Source zurückgeliefert.

Meine PHP-Klasse zum erzeugen der Einträge sieht wie folgt aus:

PHP:
$conid = "SELECT * FROM namen WHERE `_kategorie` = '" .mysql_real_escape_string( $this->selectedkategorie )."'  ORDER by '_name' ASC;";

}

    $result = mysql_query($conid) OR die(mysql_error());

    while($row = mysql_fetch_assoc($result))
    {
        # Wenn der String noch leer ist, dann wird KEIN " ," an den bestehenden String angehangen
            if(EMPTY($this->autocompletestring))
                {
                   $this->autocompletestring.= '"'.$row['_name'].'"';
               }
        # Wenn der String bereits einen Eintrag hat, dann wird " ," angehangen

            else
                {
                    $this->autocompletestring.=', "'.$row['_name'].'"';
                }

    }


autocomplete.php

PHP:
$array = array();
$array = $namensliste->getnamensliste();
echo $array;

Diese verarbeite ich in meinem JS wie folgt:

PHP:
	// Request auswerten
	function interpretRequest() {
		switch (request.readyState) {
			// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
			case 4:
				if (request.status != 200) {
					alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
				} else {
					var content = request.responseText;
                    $("input#autocomplete").autocomplete({
                    source: [content]
                    });
				}
				break;
			default:
				break;
		}
	}


Wenn ich nun in meinem Formular eine Kategorie wähle. funktioniert alles soweit, nur erhalte ich in der Autocomplete-Auswahlliste alle Einträge als einen String (einen Eintrag) und nicht als jeweils ein Eintrag untereinander.

Syntaktisch wird folgender Inhalt an die Source übergeben:

"Eintrag1","Eintrag2", "Eintrag3"

Da bei einer Verwendung ohne AJAX-Request, unter der selbigen Nutzung meiner Klasse die Autocomplete-Funktion und somit auch die Aufschlüsselung in einzelne Einträge funktioniert, muss es etwas mit meiner Responseübergabe zu tun haben.
Leider fehlt mir diesbezüglich das Wissen, warum der vorliegende String (siehe oben) in der Form nicht mehr ausreicht und was ich ändern/konvertieren muss, so dass die autocomplete-Funktion bei mir funktioniert.

Wäre für jede Anregung und Hilfe mehr wie dankbar!

Grüße Comu
 
Zurück