Frage

Ich versuche, eine Live -Suche auf meiner Fotoseite mit JQuery und dem AutoComplete -Plugin zu implementieren. Alles funktioniert, wenn ich die Daten lokal spezifisch bin:

var data = [ {text:'Link A', url:'/page1'}, {text:'Link B', url: '/page2'} ];

Wenn ich dies jedoch in PHP bewege, kann JQuery die Ergebnisse nicht richtig analysieren. Ich bin mir wirklich nicht sicher, was hier los ist. Mein aktueller Code ist unten:

<script>
$(document).ready(function(){
var data = '/livesearch'; 
$("#aut_field").autocomplete(data, {
  formatItem: function(item) {
    return item.text;
  }
}).result(function(event, item) {
  location.href = item.url;
});
                });
</script>

Und mein PHP -Skript druckt im folgenden Format ein mehrdimensionales Array:

{"1":{"text":"Google Website","url":"http:\/\/www.google.com"},
 "2":{"text":"Yahoo Website","url":"http:\/\/yahoo.com"},}

Wenn ich jedoch alarmiere (item.text), heißt es in der Variablen undefined.

Wenn ich aufmerksam bin (Element), sehe ich die gesamte Zeichenfolge, die von PHP ausgegeben wurde.

Ich habe versucht, mit eval () herumzuspielen, aber ich bin mir nicht sicher, wo ich es setzen soll oder wie JS die Daten tatsächlich interpretieren kann. Danke für Ihre Hilfe. Der für meine Implementierung spezifische Beispielcode wird geschätzt.

War es hilfreich?

Lösung

Wie bereits erläutert, fragt der Ansicht alle Aufgaben in der Liste (> 5000 Elemente) ab und gibt alle Elemente (> 5000) in Chargen mit Pagination zurück.Damit Ihr WebPart funktioniert, muss er weniger als 5000 Artikel abfragen und es muss auch weniger als 5000 Artikel zurückkehren.Die Filterspalte muss auch indiziert werden.

realistisch gesehen sind Ihre Optionen Folgendes:

    .
  1. Wenn Sie die auf den aktuellen Benutzer zugewiesenen Aufgaben anzeigen möchten, erstellen Sie eine Ansicht mit dem Filter, das der zugewiesenen Filter, der "[ME] zugewiesen ist, und index der zugewiesenen Spalte
  2. Wenn Sie Aufgaben für alle Benutzer anzeigen möchten, ist es möglicherweise besser, einfach unvollständige Aufgaben anzuzeigen. In diesem Fall benötigen Sie, in dem Sie eine Ansicht mit dem Filterstatus erstellen müssen, nicht gleich "abgeschlossen" und index das Statusfeld nicht indexieren.

Andere Tipps

Probieren Sie dieses Muster in Ihrem PHP aus:

[
   {"text":"Google Website","url":"http:\/\/www.google.com"},
   {"text":"Yahoo Website","url":"http:\/\/yahoo.com"}
]

Und Ihr PHP -Skript gibt ein mehrdimensionales Array zurück/Objekt mischen. Wenn Sie darauf bestehen (Sie sprengen Ihren VAR mit mehreren "Text:" AMD "url;"), sollte es sein:

[[{"text":"Google Website","url":"http:\/\/www.google.com"}],[{"text":"Yahoo Website","url":"http:\/\/yahoo.com"}]]

Besser:

var x=[["Google Website","http:\/\/www.google.com"],["Yahoo Website","http:\/\/yahoo.com"]];

Wenn Sie zur Yahoo -Website springen möchten: var url = x [1] [1];

Oder:

var x={"Google_Website":"http:\/\/www.google.com","Yahoo_Website":"http:\/\/yahoo.com"};

Wenn Sie zu Google_Website springen möchten: var url = x ["google_website"];

Mein Tipp: Besuchen Sie Geben Sie hier eine Linkbeschreibung ein

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top