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?