jqueryUI - autocomplete legt mich aufs Kreuz

der_maik

Grünschnabel
Hallo zusammen,
ich bin neu hier. Mein Name ist Maik und in meiner Freizeit arbeite ich an mehreren Webprojekten. Bisher habe ich die JQuery Tools von Flowplayer.org genutzt, kam damit auch gut zurecht und bin jetzt aber bei der JQuery UI gelandet. Leider versucht mich das Plugin "autocomplete" mit Erfolg aufs Kreuz zu legen.
Vieleicht habt Ihr einen Tip für mich.

Bereits im einfachsten (abstahierten) Fall für die Remotesource funktioniert etwas nicht korrekt.

Gegeben sei erstmal folgendes Eingabefeld

HTML:
<input type="text" id="searchBooks" />

Und die einfachste Variante für den autocomplete-Aufruf etwas tiefer
Code:
$(document).ready(function(){
        $("#searchBooks").autocomplete({
            source:"php/dictionary.php"
        });
    });

Bisher habe ich in der php Datei einen json-String zurückliefern lassen, der mir die aus diversen Datenbankabfragen eine Ergebnisliste label/value-konform aufbaut. Gut, das hat nicht funktioniert. Daher dachte ich, ich fange ersteinmal ganz klein an. Aber auch das funktioniert leider nicht:

dictionary.php
PHP:
<?
echo '["testA","testB"]';
?>
Da tut sich bei der Eingabe von "Te" im Eingabefeld leider gar nichts. Um direkt auszuschließen, dass etwas an der Bibiliothek nicht korrekt ist, habe ich Folgendes probiert, was natürlich funktioniert.

Code:
$(document).ready(function(){
        $("#searchBooks").autocomplete({
            source:["TestA","TestB"]
        });
    });

Jetzt ist die große Frage, wo für die Nutzung der Remotesource der Fehler liegt.

Hier noch mein 'etwas' größeres Json Beispiel:
PHP:
<?

require_once ('../Connections/connect.php');
require_once ('../utils/dbtools.php');
require_once ('../utils/tools.php');

$return_arr = array();

//Nicht wundern: meine Bibliotheken zum Schutz von Injections usw...
$b = dbquery('select * from buecher');


foreach ($b as $r) {
    $row_array['label'] = $r['bu_id'];
    $row_array['value'] = $r['bu_titel'];

    array_push($return_arr, $row_array);
}

$j = json_encode($return_arr);

echo $j;

?>

Habt Ihr da eine Idee für mich? Gerade im letzten Fall sieht der Json String aus, wie ein Json String auszusehen hat...
Im Vorfeld schoneinmal besten Dank und ein gutes WE,

der Maik
 
Ich kann deinen Code 1zu1 benutzen und er funktioniert.
Prüfe mittels HttpFox, Firebug oder ähnlichem, was zum Server gesendet wird und was zurück kommt.
 
Hi CPoly,
der Tipp war Gold wert. Mein Apache wirft PHP Notifications aus, das habe ich nicht bemerkt.
Ergo war in dem "echo" nicht nur der json String enthalten, sondern auch noch zwei Warnings.
Das kann dann durch jquery nicht verarbeitet werden.
Besten Dank dafür
 

Neue Beiträge

Zurück