Werte zwischen Formularfeldern transferieren

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

  • Werte zwischen Formularfeldern transferieren

    Hallo von einem Forenneuling,

    die Mitarbeiterverwaltung unserer Kirchengemeinde wird mit Hilfe eines von mir entwickelten PHP/MySQL-Systems realisiert. Es läuft in einigen Bereichen schon ganz gut, aber mit den realisierten Möglichkeiten wachsen auch die Begehrlichkeiten.

    Nun zum Anliegen: Ich kann in einem Formular aus der Liste aller Mitarbeiter mehrere Mitarbeiter auswählen, die einem bestimmten Dienst zugeordnet werden (der Dienst wird eine Seite vorher ausgewählt). Diese Liste ist natürlich ziemlich lang, und die Auswahl geht mit gedrückter STRG-Taste.

    Mein Hauptanwender findet das unpraktisch und wünscht folgende Lösung: zwei Listen, eine mit den Mitarbeitern, die dem Dienst nicht zugeordnet sind, und eine mit den anderen. Nun möchte er Mitarbeiter per Mausklick von der jeweils einen zu der anderen Liste verschieben (also Mitarbeiter neu zuordnen oder aus einer Zuordnung entfernen).

    Von PHP hab ich ja schon ein wenig Ahnung, aber um so etwas zu realisieren, weiß ich noch nicht einmal, wonach ich genau suchen muss.

    Wer hilft mir?

    Vielen Dank und Grüße
    Jochen

  • #2
    Das dürfte sich mit php wohl kaum realisieren lassen, da php ein serverbasierte Sprache ist. Das bedeutet, dass Daten die einmal an den Clienten übermittelt wurden, nicht mehr von dem php-Script beeinflussbar sind. Du kannst mal recherchieren, ob sich sowas mit Javascript realisieren kann.

    Die einzige Möglichkeit das mit php zu machen wäre wohl, dass die Seite bei jeder Transferaktion neu geladen wird (weil dann ja wieder das php-Script ins Spiel kommt). Das ist vielleicht nicht unbedingt so wünschenswert, oder??

    Kommentar


    • #3
      eine weitere möglichkeit wäre, das mit ajax zu lösen. habe mal ein kleines tutorial zum thema ajax verfaßt. vielleicht hilft das weiter.

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

      Kommentar


      • #4
        OffTopic:
        @peter: wann gibts deine seite eigentlich mal in hell?

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          OffTopic:
          @peter: wann gibts deine seite eigentlich mal in hell?
          OffTopic:
          naja, das grunddesign habe ich letzten winter abends zu hause gemacht. wenn es draussen schön dunkel ist und hast deine zimmerbeleuchtung heruntergedimmt, dann kann man das wunderbar lesen. vielleicht dergel ich das irgendwann mal um



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

          Kommentar


          • #6
            OffTopic:
            vielleicht schneit es diesen winter.

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              OffTopic:
              vielleicht schneit es diesen winter.
              OffTopic:
              in köln?


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

              Kommentar


              • #8
                Noch mal zu meine Beitrag vorhin:
                Wenn du es mit php lösen möchtest, würde ich es folgendermaßen machen:

                PHP-Code:
                    //starte Session, in die nachher die temporären Daten geschieben werden
                    
                session_start();
                    
                    function 
                init () {
                        
                //Initialisiert die Ausgangskonfiguration der Mitarbeiter und schreibt sie in die Session
                        
                $_SESSION['ma1'] = "l"//ma1 steht für Mitarbeiter 1 und l für links (linke Liste)
                        
                $_SESSION['ma2'] = "r";
                        
                $_SESSION['ma3'] = "r";
                        
                //und so weiter
                    
                }
                    
                    function 
                namen ($nr) {
                        
                //Ordnet jeder Mitarbeiternr einen Mitarbeiternamen zu
                        
                $namen = array('Name des 1. MAs','Name des 2. MAs''...');
                        return 
                $namen[$nr];
                    }
                    
                    function 
                lese_session () {
                        
                $ma = array();
                        
                $i 0;
                        
                //liest die aktuelle Mitarbeiterkonf aus der Session und gibt sie in einem Array zurück
                        
                while (isset($_SESSION['ma'.$i])) {
                            
                $ma[$i] = $_SESSION['ma'.$i];
                            ++
                $i;
                        }
                        return 
                $ma;
                    }
                    
                    function 
                verschiebe_ma ($mitarbeiter$ziel) {
                        
                //Verschiebt einen Mitarbeiter ($mitarbeiter als Nummer) zum $ziel (l oder r)
                        
                $_SESSION['ma'.$mitarbeiter] = $ziel;
                    }
                    
                    function 
                gen_linke_liste () {
                        
                //Generiert den HTML-Code der linken Liste und gibt ihn zurück
                        
                $ma lese_session ();
                        
                $liste '<select name="linke_liste">\r\n';
                        while (isset(
                $liste[$i])) {
                            if (
                $liste[$i]=="l") {
                                
                $name namen ($i);
                                
                $liste .= '<option value="'.$i.'">'.$name.'</option>\r\n';
                            }
                        }
                        
                $liste .= '</select>\r\n';
                                return 
                $liste;
                    }
                    
                    function 
                gen_rechte_liste () {
                        
                //Generiert den HTML-Code der linken Liste und gibt ihn zurück
                        
                $ma lese_session ();
                                
                $i 0;
                        
                $liste '<select name="rechte_liste">\r\n';
                        while (isset(
                $liste[$i])) {
                            if (
                $liste[$i]=="r") {
                                
                $name namen ($i);
                                
                $liste .= '<option value="'.$i.'">'.$name.'</option>\r\n';
                                                ++
                $i;
                            }
                        }
                        
                $liste .= '</select>\r\n';
                                return 
                $liste;
                    }
                    
                    
                //Dann holst du dir einfach über $_POST['linke_liste'] bzw. $_POST['rechte_liste']
                    //den vom Benutzer ausgewählten Namen und führst die entprechenden Funktionen aus 
                Hab das gerade einfach mal so runtergetippt. Weiß daher nicht, ob da noch irgendwelche Fehler drin sind. Das ist auch nur nen Ansatz, keine fertige Lösung. Ich hoffe, dass meine Kommentare ausreichen... Wenn du Fragen hast, dann einfach stellen!

                Kommentar


                • #9
                  Hi Mathis,

                  die Funktionen würden aber auch nur nach einem Reload der Seiten funktionieren, oder? Wahrscheinlich müsste man wirklich Javascript und Konsorten bemühen :-(.

                  Danke aber für das Skript, das sieht allgemein sehr interessant aus. :-).

                  Beste Grüße
                  Jochen

                  Kommentar


                  • #10
                    Du könntest ja die beiden Listen in einen extra-Frame machen, der kein Bilder etc. enthält. Dann ginge ein Neuladen sehr schnell, aber wenn das mit Javascript geht, dann ist das natürlich einfacher!

                    Wobei du bei einer solchen php-Lösung den Vorteil hättest, das der Server jede Änderung mitbekommt (und bei Bedarf gleich an die Datenbank schicken kann). Wenn du das mit Javascript machst, müsstest du erstmal noch rausfinden, wie du die gesamten Listen an php übergeben kannst. Denn normalerweise übergibt der ja nur die jeweils ausgewählte Spalte...
                    Zuletzt geändert von Mathis; 01.12.2006, 23:01.

                    Kommentar

                    Lädt...
                    X