Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Filtrowanie danych - if - else
php11
post 2.07.2025, 15:36:30
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 5
Dołączył: 11.02.2011

Ostrzeżenie: (0%)
-----


Cześć,

korzystam z tego: https://stackoverflow.com/questions/4858572...586061#48586061


Filtrowanie działa pięknie, choć samo działanie nie do końca to ogarniam ;-)
Chciałbym wyswietlić informację, gdy zwracany wynik nie wyświetla nic (podany przykład zawsze zwraca jakąś wartość figur).

Kombinowałem cos jak poniżej dla color oraz shape, ale nie działa
  1. if (color) {
  2. Array.from(cards).filter(card => !card.classList.contains(color)).forEach(card => card.classList.add('hidden'))
  3. moja_let = true;
  4. } else {
  5. moja_let = false;
  6. }


Naprowadzicie mnie na rozwiązanie?
Dzięki!
Go to the top of the page
+Quote Post
trueblue
post 2.07.2025, 18:47:41
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


A możesz opisać co dokładnie chcesz osiągnąć?
Podany przykład filtruje elementy, które nie mają określonej klasy i nadaje im klasę 'hidden'.


--------------------
Go to the top of the page
+Quote Post
php11
post 4.07.2025, 12:58:31
Post #3





Grupa: Zarejestrowani
Postów: 215
Pomógł: 5
Dołączył: 11.02.2011

Ostrzeżenie: (0%)
-----


Dzięki za szybka i konkretna odpowiedź
Już się poprawiam :-)

Dodałem do selectów: gold oraz circle
  1. <label>Choose the color
  2. <select id="selectColor" onchange="colorType();">
  3. <option value=""></option>
  4. <option value="gold">Gold</option>
  5. <option value="blue">Blue</option>
  6. <option value="red">Red</option>
  7. </select>
  8. <label>Choose the shape
  9. <select id="selectShape" onchange="shapeType();">
  10. <option value=""></option>
  11. <option value="circle">Circle</option>
  12. <option value="round">Round</option>
  13. <option value="square">Square</option>
  14. </select>

Gdy wybieram je oba (lub pojedynczo) nie dzieje się nic, bo nie dodałem div-ów z tymi klasami.

Gdy wybranie selecta generuje 0 wyników chcę wyświetlic komunikat: zmień wybór
Tylko i aż tyle ;-)
Go to the top of the page
+Quote Post
trueblue
post 4.07.2025, 14:12:49
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. >Choose the color
  2. <select id="selectColor">
  3. <option value=""></option>
  4. <option value="gold">Gold</option>
  5. <option value="blue">Blue</option>
  6. <option value="red">Red</option>
  7. </select>
  8. >Choose the shape
  9. <select id="selectShape">
  10. <option value=""></option>
  11. <option value="circle">Circle</option>
  12. <option value="round">Round</option>
  13. <option value="square">Square</option>
  14. </select>
  15.  
  16.  
  17. <span class="gold round">gold round</span>
  18. <span class="gold square">gold square</span>
  19. <span class="red square">red round</span>



Kod
document.addEventListener("change", function (e) {
  if (
    e.target.tagName === "SELECT" &&
    (e.target.id === "selectColor" || e.target.id === "selectShape")
  ) {
    let chosen = []

    if (
      document.getElementById("selectColor").value !== "" &&
      document.getElementById("selectShape").value !== ""
    ) {
      chosen = document.querySelectorAll(
        "." +
          document.getElementById("selectColor").value +
          "." +
          document.getElementById("selectShape").value,
      )

      if (chosen.length === 0) {
        alert(1)
      }
    }
  }
})


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:33