it-swarm.com.de

Boolescher Schalter mit einem dritten Zustand

Hinweis: Jeder scheint diese Frage falsch verstanden zu haben. Wörtlich alle. Ich erstelle kein Anmeldeformular, ich sammle keine persönlichen Daten. Die Form, zu der dies gehört, wird verwendet, um eine große Liste von Personen nach bestimmten Bedingungen zu filtern.

Ich habe ein Formular zum Erstellen von Abfragen, mit dem der Benutzer eine SQL-Abfrage erstellen kann. Alle möglichen Variationen der Abfrage werden aufgelistet und der Benutzer muss die erforderlichen Variationen auswählen und die Abfrage ausführen.

Problem

Für eine Person kann der Benutzer Geschlecht wählen. Von außen scheint es eine boolesche Operation zu sein (männlich oder weiblich), aber es gibt noch eine Variation.

  1. Individuum ist [~ # ~] männlich [~ # ~]
  2. Individuum ist [~ # ~] weiblich [~ # ~]
  3. Das Geschlecht einer Person sollte nicht berücksichtigt werden (Kann [~ # ~] männlich [~ # ~] oder [~ sein # ~] weiblich [~ # ~] )

Ich habe Optionsfelder Durch einen Schalter wie folgt ersetzt:

(Screenshot of widget

Wie vertrete ich den 3. Zustand?

62

Wenn ich die Prämissen der Frage richtig verstanden habe, sollte der Benutzer entscheiden:

  1. Wenn der Benutzer eine der folgenden Optionen in Betracht ziehen (filtern nach) möchte
  2. Wenn die Antwort auf 1 Ja lautet, wählen Sie eine der Optionen

Die möglichen Ergebnisse sind:

  • Option A.
  • Option B.
  • Unzutreffend

Ursprünglicher Vorschlag : [Demo]

Wenn Sie mschalttasten verwenden, können Sie für das dritte Ergebnis die Möglichkeit geben, beide Optionen zu deaktivieren (Hinzufügen einer zusätzlichen Anmerkung zur Verdeutlichung dieser Möglichkeit oder eines "(optional)" neben dem Etikett). Es kann entweder eine oder keine Schaltfläche ausgewählt werden. Durch Klicken auf eine bereits ausgewählte Schaltfläche wird die Auswahl aufgehoben.

Zweiter Vorschlag : Lassen Sie den Benutzer 1 und dann 2 entscheiden. Das Kontrollkästchen aktiviert/deaktiviert die Schaltflächen. In diesem Fall können die Umschalttasten als Optionsfelder fungieren, bei denen eine ausgewählt werden muss.

(Danke @theonlygusti für das Feedback zur Checkbox-Formulierung)

81
Alvaro

Hier:

(

Sie erstellen einen Suchfilter? Fügen Sie einfach eine Option hinzu, die bedeutet, dass Sie diese Filteroption nicht interessieren.

männlich | weiblich | spielt keine Rolle

Andere Namen:

  • Irgendein
  • Entweder
  • Jeder
  • N/a nicht anwendbar)

Ich mag "jeden" am meisten.


Das OP drückte (in den Kommentaren zu dieser Antwort) die Sorge aus, dass diese Lösung den Benutzer zwingen würde, zusätzliche Klicks zu machen. Wie IMSoP es jedoch ausdrückte:

Wenn der Standardwert "Beliebig" ist, sollte diese Option standardmäßig ausgewählt sein.

Haben Sie einfach eine standardmäßig ausgewählte Option.

115
theonlygusti

Was Sie suchen, ist "beides", "beliebig" oder "alle" (falls Sie weitere Geschlechtskategorien hinzufügen).

Alle - Weiblich - Männlich

Das macht deutlich, dass Ergebnisse von beiden (oder allen) Geschlechtern einbezogen werden. Auf diese Weise muss der Benutzer einen der drei Schalter auswählen, möglicherweise wird standardmäßig "Alle" ausgewählt.

28
Luciano

In vielen Situationen ist der Kontext wirklich sehr wichtig, und es kann sinnvoll sein, einen konsistenten Weg zu suchen, um alle Filter durchzuführen, und nicht nur den männlichen/weiblichen. Wie die Frage lautet:

Die Form, zu der dies gehört, wird verwendet, um eine große Liste von Personen nach bestimmten Bedingungen zu filtern.

Was sind die anderen "Bedingungen" und wie passen diese zusammen? Enthalten sie Hobbys? Land/Region/Wohnort? Abteilung? Anzahl der Dienstjahre? Mit oder ohne mehrfache/verschachtelte Filteroptionen?

Alternativ könnte es sich lohnen, zu untersuchen, wie "typische" Filter in E-Commerce-Umgebungen funktionieren:

(enter image description here

  • wenn nichts ausgewählt ist, wird kein Filter unter dieser Bedingung angewendet
  • wenn einer (oder mehrere) ausgewählt sind, werden nur die Datensätze mit dieser Bedingung angezeigt
  • wenn alle Optionen ausgewählt sind, werden alle Elemente mit diesen Optionen angezeigt (. Hinweis: Wenn für ein Element keine Option vorhanden ist, wird das Element nicht angezeigt Wenn im männlichen/weiblichen Beispiel der Benutzer sowohl männliche als auch weibliche Optionen auswählt, werden nur Personen angezeigt, bei denen das Geschlecht angegeben ist.
12
wintvelt

Wie wäre es mit einem dritten Radio Button für den dritten Zustand ?

(enter image description here

12
DPS

Für eine Auswahl, die "keine Wahl" sowie andere, exklusive Auswahlmöglichkeiten enthält, ist eine gute, altmodische Auswahlbox großartig! In diesem speziellen Fall können Sie die Standardeinstellung "Nicht filtern" sowie so viele andere Optionen verwenden, wie Sie benötigen (einschließlich des Status "Geschlossen" und der Optionen beim Öffnen):

(Select showing non-binary options

Es hat auch den netten Nebeneffekt, dass es sinnvoll alphabetisch sortiert ist, sodass Sie alle politischen Überlegungen, welche Option an erster Stelle stehen soll, umgehen können!

9
Beejamin

Bieten Sie, wie von anderen vorgeschlagen, männliche oder weibliche sowie andere, nicht spezifizierte Optionen an (oder eine beliebige Anzahl von Optionen, abhängig von den gesammelten Daten).

Bei Ihrer Frage geht es jedoch wirklich darum, wie das gesamte Feld entfernt werden kann. Dies sollte entweder ein Kontrollkästchen sein, das angibt, dass es Teil der Abfrage/der Ergebnisse ist (Beispielbild unten). OR Sie sollten Felder hinzufügen/entfernen/neu anordnen aus einer Liste.

Die zweite Option funktioniert am besten, wenn viele Felder zur Auswahl stehen. Die erste Option ist für den Benutzer einfacher.

Beispiel für ein Kontrollkästchen:

(Gender Selection

8
Graeme Wicksted

Ich würde argumentieren, dass ein Dropdown das beste UI-Objekt für diese Situation ist.

mockup

bmml source herunterladen - Wireframes erstellt mit Balsamiq Mockups

Den Benutzern ist es wahrscheinlich vertrauter, auf einen Blick leichter zu erkennen, was ausgewählt wurde, und es ist trivial, wieder in den Status "Beliebig" zu wechseln. Darüber hinaus ist es erweiterbar, wenn Sie beispielsweise "Transgender" hinzufügen möchten. Der einzige mögliche Nachteil ist, dass die anderen Optionen dem Benutzer nicht ohne Interaktion angezeigt werden.

(Angenommen, die Quelldaten sind keine Freiform. Wenn dies der Fall ist, ist eine bearbeitbare Combobox möglicherweise am besten, wenn auch nicht die intuitivste.)

7
wmassingham

Aufgrund der zusätzlichen Informationen in den Kommentaren würde ich vorschlagen, eine Schaltfläche zum Zurücksetzen hinzuzufügen. Es liefert den gewünschten "nicht gesetzten" Status und lässt Benutzer nicht raten, wie sie ihn deaktivieren sollen.

(enter image description here

7
jazZRo

Wenn Sie möchten, dass einige Filteroptionen in der Abfrage hinzugefügt oder entfernt werden können, ziehen Sie einen Ansatz in Betracht, bei dem alle aktiven Filter am Ende als Kästchen in einer separaten Zeile dargestellt werden und einzeln entfernt werden können, um den Filter zu deaktivieren (normalerweise mit ein kleines X am Ende). Dies ähnelt der Angabe mehrerer Empfänger in den meisten E-Mail- und SMS-Anwendungen. Beachten Sie, dass dies möglicherweise nicht sinnvoll ist, wenn alle anderen Filteroptionen obligatorisch sind (ich muss mehr über die Funktionsweise Ihres Abfrage-Generators wissen, um festzustellen, ob es sich lohnt, dem mentalen Modell des Benutzers "boxifizierte Filter" hinzuzufügen).

4

Ich stimme einigen anderen Antworten zu: Es sieht so aus, als ob Sie eine dritte Option "egal" benötigen. Sie könnten die folgenden Formulierungen berücksichtigen:

  • spielt keine Rolle
  • irgendein
  • nicht wichtig

Sicher sind diese NICHT in Ordnung:

  • andere (es geht nicht darum, Gegenstände auszuwählen, die weder M noch F sind)
  • beides (nicht gut, wenn Sie beabsichtigen, dass dieser Fall "egal" überall auftaucht: Sie können nicht "A, B, C, D, beide" sagen)
  • keine der oben genannten (wie "andere")
  • alle von ihnen (mag gut sein, aber ich würde lieber mit "jedem" oder "jedem von ihnen" gehen)

Als zweitrangiges Anliegen hat der spezifische Fall des Geschlechts eine ganze Reihe von Implikationen, die andere so tapfer verteidigt haben (obwohl sie den Punkt Ihrer Frage weitgehend verfehlt haben). Geschlecht scheint ein sehr heikles Thema zu sein: Vielleicht das nächste Mal ein anderes Beispiel verwenden :)

4
Simone

Bessere Lösung: Sie können den Tristate-Switch von jQuery verwenden. https://vanderlee.github.io/tristate/enter image description here

<input type="checkbox" class="tristate" value="1">
<input type="checkbox" class="tristate" value="1" checked="checked">
<input type="checkbox" class="tristate" value="1" indeterminate="1">

Boolesche Schalter haben nur zwei Zustände.

Wenn Sie einen "dritten" Zustand benötigen, müssen Sie etwas anderes verwenden. Optionsfelder, Folien, Dropdown-Listen. Wenn Sie filtern, würde ich für jede Kategorie einen Schalter verwenden (nicht drei Zustände). Weil Sie 4 mögliche Suchkombinationen haben

Male   filter [ ON | OFF  ]
Female filter [ ON | OFF  ]
3

Alle möglichen Variationen der Abfrage werden aufgelistet und der Benutzer muss die erforderlichen Variationen auswählen

Ich würde sagen, dies beantwortet Ihre Frage. Sie sollten das Geschlechtsfeld nicht als booleschen Wert behandeln, sondern als Aufzählungswert, der in Ihrem Fall nur zwei verschiedene Werte unterstützt.

Zeigen Sie in diesem Sinne einfach eine Auswahl wie bei jeder anderen Aufzählung:

  • Entweder eine einzelne Auswahl oder eine Dropdown-Liste mit den Optionen (Alle, A, B, C).
  • Oder eine Mehrfachauswahl oder eine Reihe von Kontrollkästchen mit jeder Option und den üblichen Aktionen (Alle auswählen/Keine auswählen) daneben.
1
njzk2

Dies ist eine Situation, in der es zwei Möglichkeiten gibt, aber Sie können es als einen speziellen Fall einer Situation betrachten, in der es N Möglichkeiten gibt. Ich würde dann fragen, wie Sie einen Filter mit N Auswahlmöglichkeiten erstellen und dann N = 2 anwenden würden.

Der Vorteil dieses Ansatzes besteht darin, dass Sie Ihre Filterzugabe nicht ändern müssen, wenn Sie jemals andere Geschlechter einbeziehen möchten oder müssen. Außerdem bietet es eine größere Konsistenz mit anderen Filtern mit N Auswahlmöglichkeiten.

Wie wäre es nur mit einer Liste von Kontrollkästchen?

Filter by gender:

[x] Male
[x] Female

Sie können beide eingeschaltet sein oder einer von ihnen kann eingeschaltet sein. Die Anwendung sollte sicherstellen, dass Sie die letzte Option nicht deaktivieren können, da dies zu einer Situation führen würde, in der alle Elemente herausgefiltert werden.

Wenn Sie es später jemals erweitern müssen:

Filter by gender:

[ ] Male
[x] Female
[x] Other
[x] Not specified

Der einzige Nachteil ist, dass möglicherweise mehr Platz benötigt wird. Normalerweise würde ich Ihnen raten, Ihre Filter in einer Spalte und nicht in einer Zeile zu platzieren.

1
Joost Lubach

Die platzsparende Alternative: Zwei Tasten, "Männlich" und "Weiblich", und höchstens eine, können hervorgehoben werden.

Es ist ein Filter. Filter entfernen Daten aus einem Datensatz. Wählen Sie "Männlich" und es werden nur Datensätze verwendet, die als "Männlich" markiert sind. Wählen Sie "Weiblich" und es werden nur Datensätze verwendet, die als "Weiblich" gekennzeichnet sind. Wählen Sie keine aus und alle Datensätze werden verwendet. Nichts ausgewählt ist der Standardstatus. Wenn der Benutzer beispielsweise "Männlich" ausgewählt hat und seine Meinung dahingehend ändert, dass keine ausgewählt werden soll, wird sie durch erneutes Klicken auf "Männlich" deaktiviert.

Einige Leute scheinen eine Fixierung auf Leute zu haben, die nicht fallen oder nicht in diese Kategorien fallen wollen oder ihr Geschlecht nicht sagen wollen. Diese Personen werden offensichtlich in der Liste aufgeführt, wenn Sie nichts auswählen. Und das ist richtig so - ich möchte nicht, dass Dick, Tom und Harry eine vollständige Liste aller Transgender-Mitarbeiter finden (die wahrscheinlich nur sehr wenige sind), da dies nicht unwahrscheinlich ist, dass dies zu Belästigung oder Diskriminierung führt sind in einer großen Bevölkerung leicht zu erkennen.

1
gnasher729

Eine andere Möglichkeit, dies zu berücksichtigen, besteht darin, zwei Umschalttasten zu haben, dh nach dem zu filtern, was der Benutzer ausgewählt hat. Wenn sie dies auch nicht auswählen, nehmen Sie es nicht in die Abfrage auf. Wenn Sie einen von ihnen oder beide auswählen, fügen Sie die where-Klausel hinzu ... und gender = 'male' ... oder fügen Sie die where-Klausel hinzu ... und (gender = 'male' oder gender = 'female') ).

Wenn das Geschlecht immer vorhanden ist, werden die gleichen Ergebnisse erzielt, wenn in der Benutzeroberfläche kein Geschlecht ausgewählt ist oder beide ausgewählt sind.

Wenn das Geschlecht nullbar ist, möchten Sie möglicherweise null als auswählbares Element hinzufügen: [NULL] [MÄNNLICH] [WEIBLICH]

Für mich hängt es wirklich vom Kontext der Benutzeroberfläche ab, ob ich das Kontrollkästchen aktiviere, das das Feld aktiviert, oder ob ich nur die Optionen aufliste, die ein bestimmtes Feld hat.

0
Robert Baron

was ist mit diesem kompakten Ansatz für einen Ja/Nein/Weder Filtereingang?

nehmen Sie einen Hinweis von Sortierschaltflächen in Spaltenüberschriften, die pro Klick von Aus/Auf/Ab/Aus wechseln

eine Schaltfläche, die die Werte pro Klick ändert und die aktuelle Filterauswahl anzeigt:

--------------------
| filter by gender |    (gender filter is off)
--------------------

(klicken)

--------------------
|      female      |    (female filter is on)
--------------------

(klicken)

--------------------
|       male       |    (male filter is on)
--------------------

(klicken)

--------------------
| filter by gender |    (gender filter is off)
--------------------

die Tasten "weiblich" und "männlich" können invertiert sein, um anzuzeigen, dass der angegebene Filter "an" war.

0
stuart

Boolean hat nur zwei Zustände; Ein/Aus oder Eins/Null. Wenn es sich jedoch in einer Datenbank befindet, kann es null sein und nicht festgelegt werden. Verwenden Sie also Null, Eins oder Null für männlich, weiblich, andere. Drei Zustände in einem Booleschen Feld.

0
Simon

Sie haben besser zwei Ja/Nein-Felder als Optionsfelder. Es kann immer noch genau so aussehen, wie Sie es haben, aber es erlaubt alle 4 Zustände, einschließlich Ein und Aus. Um das Ein- und Ausschalten hervorzuheben, können Sie einen kleinen Ein-/Ausschalter hinzufügen, der für jedes Geschlecht umschaltet.

0
samerivertwice

Ich würde Kontrollkästchen verwenden, also aktivieren Sie diejenigen, die Sie für die Suche berücksichtigen möchten, da Sie im Grunde "Suche nach Männern"/"Suche nach Frauen"/"Suche nach beiden" haben.

Ein sekundärer Vorteil ist, dass Sie einfach neue Kontrollkästchen hinzufügen, wenn Ihr System um andere Geschlechter erweitert wird

0
deworde