2017-06-20 1 views
0

Ich habe versucht, dies herauszufinden, kann aber nicht auf den Grund davon, so bin bitte bitten um Ihre Unterstützung bitte. Der beste Weg, dies zu erklären, ist ein Beispiel.wenn> 3 selected optionen sind die gleichen php

Nehmen wir an, Sie haben 6 Auswahlfelder, in denen der Benutzer Elemente aus einer Liste auswählt. Nach der Übergabe werden die Werte über "GET" gesendet und die Ergebnisse auf dem Bildschirm angezeigt.

Wie würde ich prüfen, ob 3 oder mehr der 6 ausgewählten Optionen gleich sind? Ich weiß, wie man die gewählten Werte von GET erhält, aber nicht, wie man prüft, ob 3 oder mehr die selbe Wahl sind.

Jede Hilfe wird sehr geschätzt.

Grüße

<select class="form-control"> 
      <option value="" disabled="" selected="">Select Choice</option> 
      <option value="choice1" >Choice 1</option> 
      <option value="choice1">Choice 2</option> 
      <option value="choice1">Choice 3</option> 
     </select> 
<select class="form-control"> 
      <option value="" disabled="" selected="">Select Choice</option> 
      <option value="choice1" >Choice 1</option> 
      <option value="choice1">Choice 2</option> 
      <option value="choice1">Choice 3</option> 
     </select> 
<select class="form-control"> 
      <option value="" disabled="" selected="">Select Choice</option> 
      <option value="choice1" >Choice 1</option> 
      <option value="choice1">Choice 2</option> 
      <option value="choice1">Choice 3</option> 
     </select> 
<select class="form-control"> 
      <option value="" disabled="" selected="">Select Choice</option> 
      <option value="choice1" >Choice 1</option> 
      <option value="choice1">Choice 2</option> 
      <option value="choice1">Choice 3</option> 
     </select> 
<select class="form-control"> 
      <option value="" disabled="" selected="">Select Choice</option> 
      <option value="choice1" >Choice 1</option> 
      <option value="choice1">Choice 2</option> 
      <option value="choice1">Choice 3</option> 
     </select> 
<select class="form-control"> 
      <option value="" disabled="" selected="">Select Choice</option> 
      <option value="choice1" >Choice 1</option> 
      <option value="choice1">Choice 2</option> 
      <option value="choice1">Choice 3</option> 
     </select> 
+3

Mit 'array_count_values' ich –

+0

nehme Gibst du sie als ein Array zu erhalten oder sind sie einzelne GET-Variablen mit unterschiedlichen Namen? Das Posten deines Codes würde helfen. – WheatBeak

+0

Wie kann ein Benutzer die gleiche Sache mehrere Male auswählen, um damit zu beginnen? – apokryfos

Antwort

1

Ihre Antwort ist, was @u_mulder in erster Linie sugggested: array_count_values auf Ihre Anfrage Teilmenge.

Sie müssen jedoch zunächst Ihre Namen angeben, z.

<select name='select[]' class="form-control"> 
     <option value="" disabled="" selected="">Select Choice</option> 
     <option value="choice1" >Choice 1</option> 
     <option value="choice1">Choice 2</option> 
     <option value="choice1">Choice 3</option> 
    </select> 
<select name='select[]' class="form-control"> 
     <option value="" disabled="" selected="">Select Choice</option> 
     <option value="choice1" >Choice 1</option> 
     <option value="choice1">Choice 2</option> 
     <option value="choice1">Choice 3</option> 
    </select> 
<select name='select[]' class="form-control"> 
     <option value="" disabled="" selected="">Select Choice</option> 
     <option value="choice1" >Choice 1</option> 
     <option value="choice1">Choice 2</option> 
     <option value="choice1">Choice 3</option> 
    </select> 
<select name='select[]' class="form-control"> 
     <option value="" disabled="" selected="">Select Choice</option> 
     <option value="choice1" >Choice 1</option> 
     <option value="choice1">Choice 2</option> 
     <option value="choice1">Choice 3</option> 
    </select> 
<select name='select[]' class="form-control"> 
     <option value="" disabled="" selected="">Select Choice</option> 
     <option value="choice1" >Choice 1</option> 
     <option value="choice1">Choice 2</option> 
     <option value="choice1">Choice 3</option> 
    </select> 
<select name='select[]' class="form-control"> 
     <option value="" disabled="" selected="">Select Choice</option> 
     <option value="choice1" >Choice 1</option> 
     <option value="choice1">Choice 2</option> 
     <option value="choice1">Choice 3</option> 
    </select> 

(Das fühlt sich an wie es in einer Schleife hätte getan werden können)

Sammeln Sie die Liste der Namen z.B.

prüfen, wie oft jedes ausgewählt wurde:

if (max(array_count_values($_GET['select'])) >= 3) { 
    /* 3 of the same value selected */ 
} 
+0

Vielen Dank. Ich bin mir nicht sicher, warum die Frage abgelehnt wurde, da ich auf SO keine ähnliche Antwort gefunden habe und ich selbst versucht habe, sie zu recherchieren, wusste aber nie von array_count_values ​​ – DisplayName

+0

@DisplayName Nicht sicher. Wahrscheinlich, weil es von Anfang an nicht zu 100% klar war, hat jemand es nur angeschaut, wegen dieses Problems abgelehnt und ist dann gegangen. Es passiert manchmal. – apokryfos

+0

Sehr wahr. Danke für deine Antwort – DisplayName

Verwandte Themen