dynamische Rasterauswahl

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • dynamische Rasterauswahl

    Hallo,

    ich soll eine Gerätesuche realisieren. Dabei sind auf der linken Seite ein paar Geräte aufgelistet und auf der rechten ein paar Eigenschaften. Nun soll es so sein, das beim klicken einer oder mehrerer der Eigenschaften nur die Geräte angezeigt werden sollen, welche diese Eigenschaften besitzen.
    Ich würde das so machen, das jedes Gerät ein Array mit den ganzen Eigenschaften bekommt und dieses dann mit einer Schleife durchlaufe. Allerdings finde ich die Methode nicht sehr elegant (von der Performace ist das evtl. auch nicht so toll, da die Geräte sofort dynamisch ohne erst auf einen Button zu klicken angezeigt werden sollen. Habt ihr vielleicht eine Idee wie man das schöner realisieren kann?
    Erfahrungen vererben sich nicht jeder muss sie allein machen.

  • #2
    Dafür brauchst du keinen Button. Leg ein onchange auf die select-Elemente und arbeite mit DOM-Manipulation. Ein Tutorial (inkl. Ajax) dazu findest du bei mir.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      du hast mein Anliegen falsch verstanden. Wie ich oben geschrieben habe, werde ich es so machen (mit onchange). Darum gehts also nicht. Mir ging es um die Produkteigenschaftsmatrix. Ob man das eleganter lösen könnte als mit einer Schleife & Arrays.
      Erfahrungen vererben sich nicht jeder muss sie allein machen.

      Kommentar


      • #4
        Das hängt von der Datenmenge ab. Wenn du dich da durch zig Elemente hangeln musst, könnte es Performance-Probleme geben. Da wäre eine Ajax-Lösung auf jeden Fall besser.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          in wie fern wäre ajax besser? Wenn eine DB angehängt wäre vielleicht. Ist es aber leider nicht. Die Eigenschaften muss ich fest rein programmieren.
          Erfahrungen vererben sich nicht jeder muss sie allein machen.

          Kommentar


          • #6
            Zitat von joextra Beitrag anzeigen
            in wie fern wäre ajax besser? Wenn eine DB angehängt wäre vielleicht. Ist es aber leider nicht. Die Eigenschaften muss ich fest rein programmieren.
            Das ist schlecht. Aber von wievielen Eigenschaften und Zuordnungen reden wir denn?

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Ich würde es mit Klassen und dem Nachfahrenselektor in CSS probieren …
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                @wahsaga
                in CSS? Kann mir jetzt nicht genau vorstellen wie das funktionieren sollte. Kannst du ein Bsp zeigen?

                @Kropff
                so viele sinds nicht. Sind so um die 10-12 Objekte (falls sich nichts geändert hat).
                Erfahrungen vererben sich nicht jeder muss sie allein machen.

                Kommentar


                • #9
                  Code:
                  <div id="objekt1" class="produkt eigenschaft_1 eigenschaft_2 …">…</div>
                  <div id="objekt2" class="produkt eigenschaft_1 eigenschaft_foo eigenschaft_bar …">…</div>
                  …
                  
                  .produkt { display:none; }
                  body.eigenschaft_1 .eigenschaft_1,
                  body.eigenschaft_2 .eigenschaft_2,
                  body.eigenschaft_foo .eigenschaft_foo,
                  body.eigenschaft_bar .eigenschaft_1_bar {
                    display:block;
                  }
                  Und wenn jetzt im Filter-Formular Eigenschaft_1 ausgewählt wird, dann setzt du halt für body die Klasse "eigenschaft_1", und wenn Eigenschaft_foo ausgewählt wird, setzt du für body noch zusätzlich die Klasse "eigenschaft_foo" … und die jeweiligen Elemente werden angezeigt.
                  Und wenn Eigenschaft_foo wieder abgewählt wird, entfernst du die Klasse "eigenschaft_foo" von body wieder … und das/die Elemente verschwinden wieder.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    ach so hast du das gemeint. Das Problem aber ist, das es wohl kein oder ist sondern und (muss ich noch abklären). Wenn es nur oder wäre, wärs kein großes Problem. Es sind zwar wenige Geräte, aber die Liste der Eingenschaften ist sehr groß.
                    Erfahrungen vererben sich nicht jeder muss sie allein machen.

                    Kommentar


                    • #11
                      Wenn du für body mehrere der Klassen setzt, dann ist das doch „und“.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        ok, ich habs jetzt genauer gesehen. Stimmt schon, nur soll das Objekt nicht einfach verschwinden, sondern animiert werden (ausgegraut und nach hinten verschoben). Somit scheidet die Lösung wohl aus.
                        Erfahrungen vererben sich nicht jeder muss sie allein machen.

                        Kommentar


                        • #13
                          Für die Elemente entsprechende Klassen zu vergeben kann immer noch hilfreich sein bei der Selektion via jQuery o.ä.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            ok, jetzt habe ich mal eine Logigfrage, den ich verzweifle so langsam.
                            Also, ich hab jetzt mal folgende Abfrage für eins der Geräte:
                            Code:
                            if(feature[1] == 1 || feature[2] == 1 || feature[3] == 1 || feature[4] == 1 || feature[5] == 1
                            || feature[11] == 1 || feature[12] == 1 || feature[13] == 1 || feature[14] == 1 
                            && feature[6] == 0 && feature[7] == 0 && feature[8] == 0 && feature[9] == 0 
                            && feature[10] == 0) {
                            ... 
                            } else {
                            ...
                            }
                            wenn jetzt z.B. feature[2] = 1 & feature[10] = 1, müsste doch logischer weise die else Anweisung durchgeführt werden, oder? Das tut es nämlich nicht. Wo liegt der Fehler?
                            Erfahrungen vererben sich nicht jeder muss sie allein machen.

                            Kommentar


                            • #15
                              Nö, wenn feature[2] == 1, dann ist bereits die zweite Teilbedingung wahr, und damit kann an der Stelle abgebrochen werden, da der Rest damit OR-verknüpft ist …
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X