dynamische Listenfelder

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

  • dynamische Listenfelder

    Hallo Leute

    Ich habe folgendes Problem und diese Tabellen:

    Tabelle Abteilungen

    Abteilung
    -------------
    Abt1
    Abt2
    Abt3
    usw.

    Tabelle Prozesse

    Nummer/Bezeichnung/Abt1/Abt2/Abt3/usw.
    -------------------------------------------------------
    111 /Telefonieren/Ja /Nein /Ja /
    222 / Rechnen /Ja /Ja /Nein/
    333 /Schreiben /Nein/Nein/Ja /


    Wenn der user nun in das erste Listenfeld (Listeabt) klickt sollen im 2. Listenfeld (Listeproc) alle Prozesse stehen, die der betreffenden Abteilung zugeordnet sind. Klickt der user ins 2. Listenfeld (Listeproc) sollen im 3. Listenfeld (Listeerg) alle Abteilungen stehen, die am gewählten Prozess aus Listeproc ebenfalls noch beteilgt sind. Im ersten Listenfeld stehen schon die Abteilungen aus der DB. Ich bin jetzt an dem Punkt steckengeblieben wo der user ins 1 LF klicken soll:

    PHP-Code:
    /* Verbindung aufbauen, auswählen einer Datenbank */
    $link mysql_connect("localhost""root@localhost""")
       or die(
    "Keine Verbindung möglich: " mysql_error());
    echo 
    "";
    mysql_select_db("Karsten") or die("Auswahl der Datenbank fehlgeschlagen");

    /* ausführen einer SQL Anfrage */
    $query "SELECT Bezeichnung FROM prozesse where irgendwas = 'True'";
    $result mysql_query($query) or die("Anfrage fehlgeschlagen: " mysql_error());

    echo 
    "<select name=\"Listeproc\" size=\"30\">\n";
    while (
    $row mysql_fetch_array($result)) 
    echo 
    "<option value=\"".$row['Nummer']."  ".$row['Bezeichnung']."\">".$row['Nummer']."  ".$row['Bezeichnung']."</option>\n";
    echo 
    "</select>\n"
    Irgendwie ist mir das mit dem Klick-Ereignis eine Nummer zu groß; es muss ja praktisch der Wert festgehalten werden, den der user im 1. Listenfeld angeklickt hat.

    Wäre für Hilfe sehr dankbar.

    Gruss
    K Man
    Zuletzt geändert von KMan; 05.03.2004, 10:59.

  • #2
    hmm,

    das thema wurde in den letzten tag hier mehrfach hoch- und runtergekaut, es kamen auch vernünftige lösungen zu stande, afaik.

    http://www.php-resource.de/forum/search.php?s=

    OffTopic:
    gut zu wissen, daß man den suchen-button per drag&drop ins eingabefeld ziehen kann, yeah!
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      OffTopic:
      gut zu wissen, daß man den suchen-button per drag&drop ins eingabefeld ziehen kann, yeah!
      OffTopic:
      Bei mir geht das net O_o komisch..

      Kommentar


      • #4
        Hi Ihr

        Ach kommt, bitte. Mein Beispiel unterscheidet sich von den anderen dadurch, dass ich meine Datenfelder mit boolean Werten wie true oder false besetzt habe. Ich bekomme das irgendwie nicht hin. Naja, bin auch erst seit 4 Tagen bei PHP.

        Liebe Grüße
        K Man

        Kommentar


        • #5
          1. ohne PHP-Tags läuft nix.. (sagen wir wenig)
          2. www.schattenbaum.net

          Kommentar


          • #6
            hmm,

            es scheint sich ja eher um js zu handeln!? schau dir die beispiele hier im forum an .... dort findest du hundert pro was ... du mußt zuerst alle daten auslesen, alles in js-arrays packen, und dann jenachdem ausgeben ... irgendwie so.

            du brauchst ein feld für die tätigkeiten der abteilungen, und pro tätigkeit noch eins für die abteilungen, die dadrin verstrickt sind?

            soll heißen, alle queries müssen vorher ausgeführt werden, wenn du den onclick benutzen willst ...
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              Hallo KMan,

              gerade habe ich - weil hier öfter mal Fragen in dieser Richtung waren und mich das Problem auch beschäftigt hatte - ein Tutorial dazu geschrieben (noch nicht veröffentlich, da noch nicht 100%tig komplett - fehlt noch ein Foto von mir ...).

              Dein Problem ist tatsächlich etwas anders und passt nicht auf die gängigen Lösungen. Allerdings ist deine Datenbank auch nicht in der Normalform (google nach Normalisierung, Datenbanken bei Bedarf).

              Du solltest zunächst eine bessere Struktur erstellen - dann sind solche Funktionen auch einfacher zu behandeln.

              Beispiel:

              Abteilung
              -------------
              Abt1
              Abt2
              Abt3
              usw.

              Tabelle Prozesse

              Nummer/Bezeichnung/Abt_ID
              -------------------------------------------------------
              111 /Telefonieren/1
              111 /Telefonieren/3
              222 / Rechnen /1
              222 / Rechnen /2
              333 /Schreiben /3
              So sollte es fürs erste reichen, obwohl man die Bezeichnung auf noch in einer Extra-Tabelle genau wie die Abteilungen hinterlegen und dann in der Tabelle Prozesse wieder auf diese verweisen sollte ...

              Jetzt kannst du ohne allzu großen Aufwand Abhängigkeiten erzeugen. Alles andere ist nicht gut ... glaub mir, ich spreche aus schmerzhafter Erfahrung

              Wenn du es eilig hast, schick mir ne Mail, dann bekommst du das tut vorab von mir.

              Kommentar


              • #8
                Hi Du

                Erstmal vielen herzlichen Dank, dass Du mir hilfst. Da wäre ich natürlich nie drauf gekommen überhaupt erstmal die DB Struktur zu ändern. Ich dachte immer, dass sei eine besonders elegante Lösung. Ja, ist sie wohl auch, aber nur wenn es ACCESS bterifft.

                Ich mache also jetzt mal folgendes.

                Tabbelle Abteilungen

                Abt_ID/ Abteilung
                ----------------------
                1/Abt1
                2/Abt2
                3/Abt3

                Tabelle Prozesse

                Nummer/Bezeichnung/Abt-ID
                -------------------------------------
                111/Telefonieren/1
                111/Telefonieren/3
                222/Rechnen/2
                222/Rechnen/3
                usw.

                Ich melde mich per mail bei Dir.

                1000 Dank.
                Gruss
                K Man

                Kommentar


                • #9
                  Hallo

                  Jetzt hätte ich nochmals eine grundlegende Frage, wie ich das nachher mit SQL am besten mache, denn ich kann ja schliesslich das Ergebnis auf 2 Arten abfragen:

                  1) Ich sage:
                  $query = "SELECT Bezeichnung FROM prozesse where Abt_ID='1'";
                  $query = "SELECT Bezeichnung FROM prozesse where Abt_ID='2'";
                  usw. und lasse es also über die Tabelle Prozesse laufen.

                  oder

                  2) Ich erstelle für jede Abteilung eine Abfrage und gebe die Abfragen nachher direkt aus.

                  Was macht man da am besten?

                  Vielen Dank.

                  Gruss K Man

                  Kommentar


                  • #10
                    Code:
                    SELECT
                      a.abteilung, p.bezeichnung
                    FROM
                      abteilungstabelle a
                      INNER JOIN prozesstabelle p ON a.abt_id=p.abt_id
                    ORDER BY
                      a.abteilung,
                      p.bezeichnung
                    warum nicht so?
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Hallo KMan,

                      habe gerade gesehen, dass das tut jetzt online ist ...

                      Kommentar


                      • #12
                        hier ... http://www.php-resource.de/forum/sho...threadid=34454
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          Hallo

                          Danke. Ich habe Dein SQL auf meine Bedingungen zugeschnitten und es kommt das was ich mir auch ungefähr gedacht habe ;-)

                          Jetzt ist es aber so, dass ich bei dieser Abfrage ja nicht zwischen den Abteilungen unterscheiden kann. Die Abfrage zeigt mir jetzt überhaupt alle Prozesse an, die jemals einer Abteilung zugeordnet wurden.

                          Vierle Grüße
                          K Man

                          Kommentar


                          • #14
                            Hi Ihr

                            Vielen Dank für den Hinweis mit dem TUT. Ich mache mich gleich dran....


                            Danke

                            Gruss K Man

                            Kommentar


                            • #15
                              steht in der spalte abteilung nicht der name der abteilung?

                              wie sieht dien select denn jetzt aus?
                              Ich denke, also bin ich. - Einige sind trotzdem...

                              Kommentar

                              Lädt...
                              X