Autocomplete mit jQuery - wie hole ich die Daten "richtig" aus der Datenbank?

Hallo Gemeinde,

beimmVersuch, das Autocomplete in meine Webseite zu integrieren, bekomme ich nun bald graue Haare. Leider habe ich bisher auch noch kein Tutorial oder ein How-To hierzu gefunden, was mir weiterhelfen könnte und die API von jQuery ist mir einfach nicht schlüssig geworden.

Ich möchte in einem input-Feld Daten per Autocomplete vervollständigen lassen. Mit lokalen Daten in einer Javascript-Datei klappt das auch wunderbar, nur leider nicht mit der Remote-Variante. Ich hole die Daten, die ich benötige aus der Datenbank mittels eines PHP-Scripts „get_location.php“ :

<?php 
$res=db_query("SELECT `location_id` AS `id`,`location_name` FROM `event_location` WHERE `location_name` LIKE '%".mysql_real_escape_string($_REQUEST['query'])."%' ORDER BY `location_name`"); 

while($ret[]=db_fetch($res)){} 
echo json_encode(array_filter($ret)); 
?>

Wenn ich dieses Script über den Browser aufrufe, werden auch alle Einträge ausgegeben.

Mein Problem ist, dass das Script, in dem die Anweisungen für das Autocomplete stattfinden, anscheinend nicht die Daten in der richtigen Form zurückbekommt.
Der Code lautet bisher folgendermaßen:

$('#remote_input').autocomplete({ 
    serviceUrl: '?site=get_location', 
	value: 'location_name', 
	title: 'id', 	 

    onSelect: function (suggestion) { 
        alert('Deine Wahl: ' + suggestion.value + ', ' + suggestion.title); 
    } 
});

Im Network des Browsers (Konsole von Chrome) wird die Query richtig abgeschickt (habe die erzeugte URL kopiert und in einem neuen Tab geöffnet und die Ergebnisse waren in Ordnung).
Es kommt also nicht das richtige wieder zurück. Als Fehler steht in der Konsole:
Uncaught TypeError: Cannot read property ‚length‘ of undefined

Was läuft da nur falsch?

So auf die Schnelle kann ich das jetzt auch nicht überblicken.

Versuch den Fehler mal einzugrenzen. Also

  1. die PHP-Datei temporär so umbauen, dass immer das exakt gleiche, gültige JSON geliefert wird, ganz unabhängig von den Parametern. Wenn das jetzt funktioniert, dann stimmen deine Übergabeparameter nicht.
  2. mach dir mal ein neues Minimalbeispiel, beginnend mit der Source von http://jqueryui.com/autocomplete/#remote Dann tauschst du nacheinander die Sachen aus, also ergänzt du deine php-Datei. Dann änderst du die Formulardetails usw.

Wenn das dann funktioniert, dann übernimmst du das in deine Anwendung.

Mein grundsätzlicher Tipp: fange bei sowas immer mit einem Minimalbeispiel an. Und wenn du hier Quellen einstellst, dann machen bitte auch immer ein vollständiges Minimalbeispiel. In deinem Fall hätte ich gern die Einbindung der jquery-Bibliotheken gesehen.