Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Porównanie wartości w kilku comboboxach
Forum PHP.pl > Forum > Przedszkole
LukPG
Witam
Jest na stronie np. 10 (ale może być również zdecydowanie więcej, np. 30) oddzielnych list rozwijalnych (select). Zastanawiam się, w jaki sposób, po wybraniu wartości w każdej z nich i wysłaniu danych na serwer, sprawdzić, czy wybrane wartości nie powtarzają się. Gdyby była możliwość identyfikacji tego comboboxa, gdzie nastąpiło powtórzenie, mógłbym powiadomić użytkownika o takim zdarzeniu. Szukałem w Internecie rozwiązania - na razie bez skutku. Prosiłbym o wskazówki, jak mógłbym dodać taką funkcjonalność.
Za pomoc z góry dziękuję.

Pozdrawiam
r4xz
1. można pobrać wszystkie dane i zapętlić pętle?  haha.gif

2. np. in_array

oczywiście jako że lubię duże kombajny (chociaż mówi się, że małe jest piękne) to polecam 1 metodę - bardzo szalona i zabójcza dla wydajności winksmiley.jpg

darko
<select name="selektor-1"><option value="1"></option><option value="2"></option></select>

<select name="selektor-2"><option value="1"></option><option value="2"></option></select>

(...)

  1. if($_REQUEST["selektor-1] == $_REQUEST["selektor-2"]) {
  2. // powtórzona wartość
  3. }


albo lepiej coś w ten deseń (nie sprawdzałem, mogą być błędy):
  1. $data = array();
  2. $repeated = array();
  3. $repeated_flag = false;
  4.  
  5. foreach($_REQUEST as $k=>$v) {
  6. // filtruj do samych selektorów:
  7. if(preg_match("/selektor-/",$k) != 0) {
  8. if(!in_array($_REQUEST[$k], $data) {
  9. $data[] = $_REQUEST[$k];
  10. } else {
  11. $repeated[]=$_REQUEST[$k];
  12. $repeated_flag = true;
  13. }
  14. }
  15. }
  16.  
  17. if($repeated_flag) {
  18. echo "powtórzono wartości "; foreach($repeated as $r) { echo $r.", "; }
  19. }
LukPG
Dzięki. Ale rozumiem, że musiałbym "zebrać" wszystkie odpowiedzi do jednej tablicy? Pojawia się problem, skąd będę wiedział, które dane pochodzą z konkretnej listy?

Pozdrawiam
darko
Przefiltruj sobie $_REQUEST szukając danej wartości name atrybutu selectora, który Cię interesuje
LukPG
Dzięki za szybką odpowiedź.

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.