it-swarm.com.de

Ich möchte, dass die Ansicht keine Ergebnisse anzeigt, wenn der Filter nichts enthält

Ich versuche, das Modul "Ansichten" für ein Feld zum automatischen Senden zu verwenden, um die Namen aus meinen Taxonomien abzurufen. Wie kann ich das Feld dazu bringen, die Ergebnisse anzuzeigen, nachdem die Benutzer etwas in das Eingabefeld eingegeben haben, anstatt alle Ergebnisse anzuzeigen, wenn nichts als Wert für den Filter eingegeben wurde?

Ich habe eine Reihe von Kontextfiltern ausprobiert, aber kein Glück.

So sieht die aktuelle Suche aus. Wenn ich einen der Begriffe oder den Feldnamen eingebe, der mit dem übereinstimmt, was ich eingebe, und so wollte ich, dass es funktioniert. Das Problem ist, dass die Ergebnisse standardmäßig angezeigt werden, bevor ich etwas eingebe . enter image description here

6
Jeremy Love

Dies ist in Ansichten 3 integriert:

  1. Bearbeiten Sie Ihre Ansicht
  2. Stellen Sie Erweitert | ein Exposed Form | Exposed Form Style to Eingabe erforderlich
15
Jay Haase

Wenn Sie den exponierten Filter auf "Erforderlich" setzen und im Standardfeld "Wert" nichts angegeben ist, wird in der Ansicht nichts angezeigt, bis ein Benutzer ihn ausfüllt und verwendet.

Tipp: Wenn Sie feststellen, dass Ihr exponierter Filter nicht angezeigt wird, wenn er leer ist, fügen Sie ( nachdem Sie "AJAX verwenden" ausgewählt haben, wenn es sich um einen Block handelt ) dem Verhalten "Keine Ergebnisse" der Ansicht etwas hinzu "Feld rechts, z. B. ein Global: Text area mit einem Leerzeichen oder  .


Eine andere Option ist das Festlegen eines Standardwerts, der mit nichts übereinstimmt. Wenn der Standardwert beispielsweise eine freundliche Nachricht wie "Geben Sie hier den Teamnamen ein" oder "Teams suchen" oder eine neutrale Nachricht wie "0" oder "–––" ist. "gibt es keine Übereinstimmungen, bis sie ihre Eingabe eingeben, daher bleibt die Ansicht leer, bis sie die Eingabe eingeben. Dies bedeutet, dass es eine unnötige zusätzliche Abfrage auf der Seite gibt - diese sollte jedoch normalerweise zwischengespeichert werden.

Wenn Sie die Standardeinstellung verwenden, können Sie zur Verbesserung der Benutzerfreundlichkeit den Text "Search Finance" auf der Google-Seite, auf die Sie verlinken, ausführen und Ihren Nutzern die Unannehmlichkeit ersparen, diesen Standardeintrag selbst mit einem Abfragecode zu löschen, der das Feld wann löscht Der Fokus wird erhöht, und für eine noch bessere Benutzerfreundlichkeit können Sie den Standardtext so gestalten, dass er leicht ausgegraut ist, und diesen Stil dann entfernen, wenn das Feld den Fokus erhält.

Es gibt viele Anleitungen, wie das geht. Ich werde sie hier nicht duplizieren. Hier ist ein Beispiel . Sie können solchen Code in die Datei scripts.js Ihres Themas einfügen (mit Drupal.behaviors Anstelle von $(document).ready, damit er weiterhin funktioniert, wenn Elemente von AJAX aktualisiert werden). Möglicherweise gibt es eine Möglichkeit, dies in Drupal php auf der Serverseite oder auch in der Konfiguration zu tun, aber ich kenne keine auf Anhieb.

Sie können auch die Optionen das Beste von beiden Abrufen, um diese zusätzliche Abfrage zu vermeiden und den Standardtext "Suchen ..." nur Personen anzuzeigen, für die Javascript aktiviert ist (was kein Ärgernis ist) to), indem Sie das Kontrollkästchen "Erforderlich" aktivieren, Value leer lassen und zusätzlich zum Code wie oben etwas wie $('#whatever-the-input-field-is').attr('value', 'Search teams'); verwenden, um nur beim Laden der Seite in die freundlich verschwindende Nachricht zu schreiben für Personen mit Javascript ist aktiviert, ohne eine Abfrage zu verursachen, die nichts findet.


Wenn ich Ihre Frage falsch verstanden habe und es sich um die Autocomplete-Funktion handelt, nach der Sie fragen, lesen Sie autocomplete_deluxe