Wysyłanie danych pięcioma polami option

0

Cześć. Mam formularz z polem select i pięcioma polami option. W kazde z tych pól wstawiam pętlą linie z teg samego pliku. Użytkownik ma mieć mozliwość wyboru ale jak się zabezpieczyć / wyłapać kiedy wybierze te same? Jest tylko możliwość sprawdzania pól "każdy z każdym" czy coś bardziej prostszego??

0
wesoly_pogrzeb napisał(a):

Cześć. Mam formularz z polem select i pięcioma polami option. W kazde z tych pól wstawiam pętlą linie z teg samego pliku. Użytkownik ma mieć mozliwość wyboru ale jak się zabezpieczyć / wyłapać kiedy wybierze te same? Jest tylko możliwość sprawdzania pól "każdy z każdym" czy coś bardziej prostszego??

if-y ?

0

Czyli ifować kazdy z kazdym ? To trochę toporne rozwiązanie bo chcę sprawdzić czy:

Pierwszy rózni sie od drugiego, trzeciego i czwartego
Drugi rożni się od pierwszego, trzeciego i czwartego
Trzeci różni się od drugiego, pierwszego i czwartego
Czwarty różni się od trzeciego, drugiego i pierwszego

0

Wiesz, że to układ równań, może mógłbyś je policzyć w końcu to algebra boola.
A każdy układ równań można skrócić do najprostszej postaci, który da ci skrócony zapis.

0
wesoly_pogrzeb napisał(a):

Cześć. Mam formularz** z polem select** i pięcioma polami option. W kazde z tych pól wstawiam pętlą linie z teg samego pliku. Użytkownik ma mieć mozliwość wyboru ale jak się zabezpieczyć / wyłapać kiedy wybierze te same? Jest tylko możliwość sprawdzania pól "każdy z każdym" czy coś bardziej prostszego??

Ale te same co co?

Chyba, że masz formularz z pięcioma polami SELECT i w nich listy OPTION i każdy ten SELECT zawiera tę samą listę.

Jeśli o to właśnie chodzi, to sugeruję zrobić jedno SELECT z opcją wielokrotnego wyboru "multiple".
https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select_multiple

0

Nie. Mam jedno select i 5 x option. W każdym z tych pól jest kilkaset takich samych danych. I teraz chcę wyłapaćczy user nie wybrał czasami tego samego minimum raz czyli np. w pierwszym polu i drugim to samo. Tylko że trzeba sprawdzić wszelkie możliwości.

0

Może ja tępa jestem, ale dla mnie jedno select z pięcioma option wygląda tak:

<select>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>    
</select>

Więc nie kumam, jak w każdym optiom zmieścić kilkaset różnych wartości.

Może pokaż przykładowy kawałek kodu, to cię zakumam :)

0

Nie, sory. Mam pięc pól select a w kżdymn jedno pole option. Poyebało mi się :)

0

Do serwera leci zestaw: Option_X = Y , gdzie X=1..5 , Y - dowolna wartość z jakiejś listy dopuszczalnych wartości.

Tworzysz mapę, które indeksowana jest wartościami wybranymi w formularzu, a przechowuje listę indeksów od option.
np. w formularzu leci:

Option1 = Y
Option2 = Z
Option3 = Y
Option4 = A
Option5 = Z

Utworzysz sobie mapę:

wybrane [ Y ] = {1,3}
wybrane [ Z ] = {2,5}
wybrane [ A ] = {4}

Przeglądasz tak skonstruowaną mapę i patrzysz na długość tablicy pod jakimś indeksem i jesli będzie > 1, to masz wykryty duplikat...

0

:)
Zatem ponownie sugeruję jedno select z opcją wielokrotnego wyboru "multiple".
Plus jakiś JS ograniczający możliwość wyboru do pięciu pozycji w stylu:
https://stackoverflow.com/questions/30474614/multiple-select-limit-number-of-selection

Alternatywą jest pięć selectów i JS dezaktywujący wybrane option w sąsiednich selectach.

0
Krwawy Lew napisał(a):

Tworzysz mapę, które indeksowana jest wartościami wybranymi w formularzu, a przechowuje listę indeksów od option.

A to nie prościej wrzucać dane z select_1 .. select_5 do tablicy
i przy każdym wrzucaniu sprawdzać przez in_array, czy danej wartości w tej tablicy już nie ma?

0
Freja Draco napisał(a):
Krwawy Lew napisał(a):

Tworzysz mapę, które indeksowana jest wartościami wybranymi w formularzu, a przechowuje listę indeksów od option.

A to nie prościej wrzucać dane z select_1 .. select_5 do tablicy
i przy każdym wrzucaniu sprawdzać przez in_array, czy danej wartości w tej tablicy już nie ma?

Zależy jak chcesz obsłużyć tę sytuację. Wyświetlić użytkownikowi "jest problem w wyborze X" (a później, "a teraz jest błąd w wyborze Y", a później "a teraz w wyborze Z"), czy raczej jednym strzałem pokazać wszystkie problemy -> "wykryto następujące błędy: ..." Można oczywiście implementować na różne sposoby.

0

Jednak in_array() nie jest dobrym rozwiazaniem bo ta funkcja porownuje -> igla , stóg siana a tutaj mamy same "igly"

1 użytkowników online, w tym zalogowanych: 0, gości: 1