2017-04-27 4 views
0

Mein Code:JQuery Autocomplete nicht zeigen Ergebnis

$("#town").autocomplete({ 
    source: function(request, response){ 
     $.ajax({ 
      url: 'url', 
      type: 'GET', 
      dataType: 'json', 
      data:{ 
       type : "towns", 
       mode: "titles", 
       limit: 20, 
       q: request.term 
      }, 
      success: function(data){ 
       console.log(data); 
       response(data); 
      }, 
     }); 
    }, 

Daten ist Json-Objekt. Ich bekomme es von PHP nach json_encode (Array). Wenn ich einige Buchstaben schreibe, werde ich json Array mit Werten haben, aber Tooltip wird nicht angezeigt. Was ist falsch? jquery 1.11.3, jquery-ui 1.11.4 console.log (Daten) Rückkehr:

Object {query: "Mi", suggestions: Array(4)} 
query: "Mi" 
suggestions : Array(4) 
0 :"Minsk" 
1: "Mir" 
2:"Mikhailovo" 
3:"Miroslavl" 

usw.

UPD

$("#town").autocomplete({ 
    source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ] 
}); 

nicht arbeiten. Jquery und Jquery sind enthalten. Concole ist klar.

+0

Also, wo ist die URL? Könnten Sie bitte die aufgerufene Aktion zeigen? –

+0

Es ist meine lokale URL. Es funktioniert großartig. Ich glaube nicht, Problem in PHP, weil console.log richtige Daten zeigen. – Dev

+0

Zeigt console.log etwas? Sie geben nicht genug Informationen. Wenn das Protokoll nicht funktioniert, liegt das Problem in der URL-Methode. –

Antwort

0

Ich glaube nicht, dass Sie die Daten im richtigen Format liefern, das die automatische Vervollständigung erwartet. Sie können nicht nur alte Daten liefern und erwarten, dass sie es verstehen - die Antwortdaten müssen mit einem der Formate übereinstimmen, die vom Plugin akzeptiert werden.

Gemäß der Dokumentation bei http://api.jqueryui.com/autocomplete/#option-source:

Es gibt zwei unterstützte Formate:

Ein Array von Strings: [ "Choice1", "Choice2" ]

Ein Array von Objekten mit Etikett und Werteigenschaften: [ { label: "Choice1", value: "value1" }, ... ]

Sie müssen Ihren serverseitigen Code ergänzen y Die Daten in einem der zulässigen Formate oder (weniger effizient) können Sie sie clientseitig innerhalb der "Erfolg" -Funktion umgestalten, bevor Sie den "Antwort" -Rückruf aufrufen.

+0

Ich änderte Erfolg Funktion: 'Daten = [" C++ "," Java "," PHP "," Coldfusion "," Javascript "," ASP "," Ruby "]; Antwort (Daten)' wie Beispiel in docs, aber es hat nicht geholfen – Dev

+0

irgendwelche Fehler in Ihrer Konsole? Haben Sie definitiv eine Textbox mit der ID "Stadt", die vor dem Ausführen des Autocomplete-Befehls deklariert wurde (oder: der Autocomplete-Befehl ist in einem "document.ready" -Block)? Es könnte hilfreich sein, wenn Sie uns mehr von Ihrem Code zeigen. – ADyson

+0

Alle Bedingungen erfüllt. Ich denke Problem in Versionen. Ich habe jquery 1.11.3 und ui 1.11.4 und benutze sie durch cdn. Dann habe ich heruntergeladen 1.11.4.zip von der offiziellen Website, fand ich heraus, dass sie jquery 10.6 darin verwenden. – Dev