Mit 2 Selectboxen Filtern

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

  • Mit 2 Selectboxen Filtern

    Hallo zusammen,

    ich stehe zur Zeit ein wenig auf dem Schlauch und suche daher nach einer helfenden Hand.

    Ich habe hier ein Formular mit einer Selectbox, hinter der ich SQL Statements gelegt habe, so dass nach Auswahl und absenden durch einen Submit Button Daten gefiltert angezeigt werden.

    Nun habe ich mir überlegt, eine weitere Selectbox anzulegen, um die Filtereigenschaften weiter einzuschränken, nur stosse ich da an meine Grenzen.

    Auch im Netz habe ich jetzt nicht unbedingt das richtige gefunden. Es wird immer wieder von "Füllen der Selectboxen durch Ajax und JS" gesprochen, aber gefüllt sind meine Selectboxen ja schon. Ich weiß nur nicht, wie ich die beiden Selectboxen so in Verbindung bringen kann, dass diese dann nach 2 Kriterien Filtern.

    Hier mal mein Ansatz:

    PHP-Code:
    <?php
    // Wenn Okay Button gedrückt 
    if(isset($_POST['ok'])){
    switch(
    $_POST['test']){
    case 
    '1':{
    //1
    include ("sql_query_datei.php");
    //sortiere nach Toren 
    $posi .= "ORDER BY Tore DESC";
    $res mysql_query($posi) or die(mysql_error());
    break;
    }
    //2
    case '2':{
    //Tore
    include ("sql_query_datei.php");
    //sortiere nach siebenmeter
    $posi .= "ORDER BY sieben DESC";
    $res mysql_query($posi) or die(mysql_error());
    break;
            }
        }
    }
    ?>
    <select name="test">
      <optgroup label="Allgemeine Filter">      
        <option value="1">1</option>
        <option value="2">2</option>
      </optgroup>
    </select>
    <?php
    $sele 
    '<select name="team" size="1">';
    $stg = (== $rows)? 'select = "selected"' :'';
    while(
    $rows mysql_fetch_array($ateam)){
    $se = ($rows[0] == $_POST['team']) ?  "selected='selected'":  '';
    $sele.= '<option value ="'.$rows[0].'" '.$se.'>' $rows[0] . '</option>';
        }
    $sele.= '</select>';
    echo 
    $sele;
    ?>
    <input type="submit" name="ok" value="Filter anwenden"/>
    Die 2. Selectbox wird direkt aus der DB geholt, da diese Daten dynamisch sein können. Hier weiß ich nicht mehr weiter, wie ich das mit der 1. in Verbinund bringen soll.

    Ich hoffe, dass ich mich einigermaßen Verständlich ausgedrückt habe. Bin gerade noch am Anfang meiner PHP Programmier"karriere".

    Vielen Dank für die Hilfe im Voraus


    Gruß
    Brave

  • #2
    Schau dir mal das Tutorial an, da geht es genau um dein Problem. Manipulation von select-Elementen zur Laufzeit.

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

    Kommentar


    • #3
      Hallo Peter,

      ersteinmal vielen Dank für Deine schnelle Antwort.
      Das ist natürlich nicht mal eben so umgesetzt. Das habe ich mir aber einfacher vorgestellt.
      Vorallem ist hier wohl auch der Nachteil, dass ich in der formular.htm Datei doch alle Werte des Arrays manuell eintippen müsste.
      Das will ich ja eigentlich nicht.
      Ich möchte auch nicht, das sich eine Selectbox in Abhängigkeit einer anderen füllt.
      Ziel ist eigentlich folgendes:
      1 Selectbox bleibt statisch mit 10 Optionen
      2 Selectbox ist dynamisch und kann zwischen 14-18 Optionen varieren,
      wobei alle sich dort befindlichen Optionen gleich mit der 1.Selectbox filtern lassen können bzw. filtern lassen sollen.

      Beispiel:
      1 Selektbox beinhaltet:
      Option: Bester 7-Meter Schütze
      2. Selektbox beinhaltet:
      Option: Verein A
      Option: Verein B

      Nun filter ich durch die 1.Selektbox zur Zeit alle aus den Vereinen existierende 7-Meter Schützen.

      Ich möchte aber nun mit Erstellung der 2.Selectbox nur die 7-Meter Schützen aus Verein A angezeigt bekommen.

      Ist da Deine Lösung nicht etwas überdimensioniert?

      Kommentar


      • #4
        1. Du kannst das JavaScript-Array auch per PHP zusammenbauen
        2. Du kannst natürlich auf das erste select-Element ein onchange-Handler legen, dann das Formular per JavaScript absenden und per PHP entsprechend auswerten

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

        Kommentar


        • #5
          Habe ich da nur die Möglichkeit über JS?
          JS ist mir etwas fremd.

          Blöde ist halt nur, dass ich ja so gut wie alles fertig habe, wenn ich mir jetzt aber Dein Tut durchlese und das auch noch irgendwie integrieren soll, dann gehe ich sehr stark davon aus, dass vieles nicht mehr so ist wie es war! :-)

          Ich hatte primär an eine Lösung via PHP gedacht, so ala:

          Wenn Select box 1 Eintrag 3 gewählt und Select box 2 Eintrag 4 gewählt -> Dann zeigen mir das Ergebnis.

          Kommentar


          • #6
            Wo ist das Problem?
            HTML-Code:
            <select ... onchange="document.formularname.submit();">
            Und dann per PHP das zweite Select anhand der Post-Werte aufbauen.

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

            Kommentar


            • #7
              Irgendwie steig ich nicht dahinter.
              Ich meine erstmal von der Logik.

              Also ich packe nun ein onchange in meine erste Selectbox.
              Was macht denn genau?

              PHP-Code:
              onchange="document.formularname.submit();" 

              Kommentar


              • #8
                Sobald du in dem select eine Auswahl triffst, wird das Formular abgesendet. Dann steht dir per PHP der entsprechende Wert zur Verfügung. Und mit dem baust du dann das zweite select mit den entsprechenden Inhalten auf.

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

                Kommentar


                • #9
                  Okay, das habe ich nun verstanden.
                  Der sendet also das Formular ab und die Daten stehen dann in $_POST['blabla'].
                  Dann kann ich die 2 Selectbox auswählen und bringe dann die beiden übereinander.

                  Ist das so richtig?

                  Kommentar


                  • #10
                    Zitat von Bravestar2010 Beitrag anzeigen
                    Ist das so richtig?
                    Probier es aus.

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

                    Kommentar


                    • #11
                      Ja, also das mit dem onchange scheint so erstmal vom prinzip her zu klappen.
                      Der lädt sofort nach auswahl aus der Selectbox das Form neu.

                      Und schwupps habe ich eine weiße Seite ohne Inhalt...

                      Da scheint dann doch irgendwo noch was zu haken.
                      Gehe ich dann wieder per browser button "zurück" und bestätige die Option mit meinem Button wird alles wieder normal angezeigt.

                      mmmmh.
                      Ist das ein normaler Anfängerfehler?

                      Kommentar


                      • #12
                        Was steht im action des Formulars? Wie sieht mit deinem Debugging aus?

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

                        Kommentar


                        • #13
                          Ist ja ein Affenformular da steht
                          PHP-Code:
                          <form action = "<?php $_SERVER['SCRIPT_NAME']?>" name ="filt" method = "post">
                          Und debugging hilft irgendwie nicht, da die Seite ja weiß ist...
                          Vorher bekomme ich beim debuggen keinerlei Fehler

                          Kommentar


                          • #14
                            Zitat von Bravestar2010 Beitrag anzeigen
                            Und debugging hilft irgendwie nicht, da die Seite ja weiß ist...
                            Dann solltest du mal dein error_reporting entsprechend einstellen.

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

                            Kommentar


                            • #15
                              habe es mit error_reporting (E_ALL); gemacht.
                              So lasse ich mir immer alles anzeigen.
                              Aber wie schon geschrieben kommt da nix, nur ne weiße seite nach der auswahl aus dem Select.

                              Auch ist die Seite W3C Valide, habe extra nochmals alles gecheckt.

                              Wie kann das denn nun sein? Wenn ich den onchange rausnehme und dann die "Filterung" über meinen Button realisiere läuft alles wunderbar (mit nur einer Selectbox).
                              Zuletzt geändert von Bravestar2010; 01.02.2011, 14:59.

                              Kommentar

                              Lädt...
                              X