formular

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

  • formular

    hi leute
    hab da ein leichtes problem ! folgendes-->

    habe im wesentlichen eine seite welche admin.php heist. diese seite soll sowas ähnliches wie ein "abgespeckter phpMyAdmin werden.

    logge mich auf dieser seite mittels ldap ein --> das loginformular wird in der funktion login_form erzeugt. wenn die auth. ok ist "verschwindet" das login form und es wird eine weitere funktion gen_erh() aufgerufen in dieser funktion wird ein formular mit zwie eingabemöglichkeiten erstellt.
    wenn ich nun den weiter button drücke wird die nächste funktion shoe_erh_name aufgrufen da wird wieder ein form generiert in welchen die eingaben von gen_erh verarbeitet und dargestellt werden.

    nun: wie bringe ich das am besten hin das nun das formular aus gen_erh nach eingabe der werte verschwindet und das formular an dieser stelle aus show_erh_name angezeigt wird --> geht es das ich das alles auf der seite admin.php mache ... hab da ein verständnisprob. oder kann sowas nicht machen bitte um hilfe
    hir noch meine scripts und funktionen
    admin.php:
    PHP-Code:
     <?php
    session_start
    ();
    //require("connect.php");
    require("ldap_lsr.php");
    require(
    "lib_admin.php");
    $debug 0;
    // HTML Titel Schreiben
    echo"<html>\n";
    echo
    "<head>\n";
    echo
    "<title>LSR-NOE Erhebungen</title>\n";
    echo
    "</head>\n";
    echo
    "<body>\n";
    echo
    "<center><h1>LSR-NOE Online-Erhebungen</h1>\n";

    if (
    $debug) {
        
    show_debug();
    } ;

    if (!isset(
    $_SESSION['login'])) {
        
    $_SESSION['login'] = 0;

    // Bei logout Session löschen
    if (isset($_POST['logout'])) {
        
    //log_event("LOGOUT");
        
    session_unset();
        
    session_destroy();

    // Bei login LDAP-Anmeldung
    if (isset($_POST['user']) AND isset($_POST['password']) AND isset($_POST['login'])) {
        
    login_ldaplsr($_POST['user'], $_POST['password']);
        if (
    $_SESSION['login']) {
           
    // log_event("LOGIN");
        
    } else {
            
    $fail $_POST['user'] . "/" $_POST['password'];
            
    //log_event("LOGIN FAIL: $fail");
        
    }

    // Anmeldeformular bzw. Abmeldeschaltfäche anzeigen
    if (!$_SESSION['login']) {
        echo
    "<div align=center>";
        if (!
    $_SESSION['login']) {
            echo
    "<h2>Anmeldung</h2>\n";
            echo
    "<font color=red size=-1>Bitte verwenden Sie im Erhebungs-System <b>niemals</b> die \"Zurück\"-Schaltfläche Ihres Browsers!</font><p>\n";
            
    login_form();
        } else {
            echo
    "<H2>Derzeit keine Erhebungen verfügbar</H2>\n";
        } 
        echo
    "</div>";
    } else {
        echo
    "<table cellpadding=5><tr bgcolor=#DDDDDD><td>\n";
        echo
    "</td><td>\n";
        
    logout_button();
        echo
    "</td></tr></table>\n";
        echo 
    "<hr>";


    if (
    $_SESSION['login']){
        
    gen_erhebung();
        
    $erh_name $_POST['erh_name'];
        
    $erh_anzahl $_POST['sp_anzah'];
        }

    if (isset (
    $_POST['weiter'])){
    show_erh_name($erh_name,$sp_anzahl );
    }


    ?>

    funktionen;
    PHP-Code:
    // Anmeldeformular
    function login_form()
    {
        echo
    "<table>";
        echo
    "<form  method=\"post\" action=\"admin.php\">\n";
        echo
    "<tr><td><b>Kontoname:</b></td><td><input type=text name=\"user\" size=8 maxlength=8></td></tr>\n";
        echo
    "<tr><td><b>Passwort:</b></td><td><input type=password name=\"password\" size=16 maxlength=16></td></tr>\n";
        echo
    "<tr><td><font size=-1>Anmeldung mit den Kontodaten von noeschule.at!</font></td><td><input type='submit' name='login' value='Anmelden'></td>\n";
        echo
    "</form></table>\n";

    // Abmeldebutton
    function logout_button()
    {
        echo
    "<form method=\"post\" action=\"admin.php\">\n";
        echo
    "<input class=ser type=\"submit\" name=\"logout\" value=\"Abmelden\">\n";
        echo
    "</form>";


    // erhebung baun
    function gen_erhebung()
    {
    echo
    "<table>";
    echo
    "<form  method=\"post\" action=\"admin.php\">\n";
    echo
    "<tr><td><b>Erhebungsname:</b></td><td><input type=text name=\"erh_name\" size=20 maxlength=20></td></tr>\n";
    echo
    "<tr><td><b>Anzahl der benötigten Felder:</b></td><td><input type=int name=\"sp_anzahl\"></td></tr>\n";
    echo
    "<tr><td><font size=-1>Mit weiter werden die Eingaben verarbeitet.</font></td><td><input type='submit' name='weiter' value='weiter'></td>\n";
    echo
    "</form></table>\n";    


    function 
    show_erh_name($erh_name$sp_anzahl){
    echo
    "<form  method=\"post\" action=\"admin.php\">\n";
    echo
    "<tr><td><b>test:</b></td><td><input type=text name=\"test\" size=20 maxlength=20></td></tr>\n";
    echo 
    $erh_name;
    echo 
    $sp_anzahl;
    echo
    "</form>\n";    


  • #2
    Re: formular

    Original geschrieben von nakg
    nun: wie bringe ich das am besten hin das nun das formular aus gen_erh nach eingabe der werte verschwindet und das formular an dieser stelle aus show_erh_name angezeigt wird
    dein submit-button im gen_erh-form heißt "weiter" mit value "weiter".
    also frag doch einfach ab, ob dieser wert übermittelt wurde.

    if(!empty($_POST['weiter']) && $_POST['weiter'] == 'weiter' ) { // jetzt nächstes formular ausgeben }


    solche sich selbst wieder aufrufenden formularseiten nennt man auch "affenformular", http://www.dclp-faq.de/q/q-stil-normalform.html gibt weitere hinweise.


    p.s.: *verschieb* zu PHP.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      re

      erstmal danke für die antwort !
      er zeigt mir zwar das formular aus show_erh_name an aber "darüber" bleibt das formular aus gen_erh stehen .
      will aber das nach drücken des buttons weiter eben das form aus gen_erh verschwindet und an dieser stelle das andere anzeigt.

      Kommentar


      • #4
        Re: re

        Original geschrieben von nakg
        er zeigt mir zwar das formular aus show_erh_name an aber "darüber" bleibt das formular aus gen_erh stehen .
        und ein wenig mitdenken ist zu viel verlangt?

        if(bedingung) { // zeige formular aus show_erh_name() }

        das kriegst du also hin? fein.


        wo ist dann das problem, auf etwas analogs in der art

        if(!bedingung) { // zeige formular aus gen_erhebung() }

        zu kommen, so dass dieses formular nur dann angezeigt wird, wenn die bedingung eben noch nicht erfüllt war ...?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          re

          versteh ich nicht

          will einfach das das was in der ersten funktion also formular ein weg ist wenn ich weiter gedrückt habe und an der gleichen stelle auf dem bildschirm das formular aus funktion 2 dargestellt wird und das alles auf der gleichen seite admin.php

          weis nicht was du mit der bedingung meinst ?
          speichere mit weiter die eingaben in eine var und gebe is im zwieten formular wieder aus will aber das mann das erste nicht mehr sieht

          bitte nicht böse sein wenn ich so dumm frage

          Kommentar


          • #6
            Re: re

            Original geschrieben von nakg
            weis nicht was du mit der bedingung meinst ?
            na das, was ich oben gepostet hatte, die abfrage!

            die hat doch nach deiner aussage auch schon "funktioniert".

            also wo ist das problem, eine bedingung zu negieren, und anhand dieser abfrage dann zu entscheiden, ob das erste formular ausgegeben werden soll oder nicht ...?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              re

              ich raff das einfach nicht !
              bedingung für aufruf des formulars aus show_erh_name ist das der button weiter gedrückt ist.
              dann soll eben nur das form angezeigt werden ..

              wenn also weiter gedrückt wurde wird mit
              PHP-Code:
              if (isset ($_POST['weiter'])){  // abfrage ob wieter gedrückt 
                  
              show_erh_name($erh_name,$sp_anzahl ); // dann diese funktion 

              da steht dann aber in admin.php weiter oben immer noch
              PHP-Code:

              if ($_SESSION['login']){ // session wird bei login gesetzt trifft also immer zu 
                  
              gen_erhebung(); // erste funktion --> zu daten eingeben 
                  
              $erh_name $_POST['erh_name'];
                  
              $erh_anzahl $_POST['sp_anzah'];
                  } 
              und eben genau dies wird dann wieder angezeigt
              wüsste nicht wie und mit welchr bedingung ich das wegbekomme!damit zwar werte noch vorhanden sind funktion bzw ebnen das formular aus der funktion weg ist

              könnte ja sein das wir aneinander vorbeireden

              Kommentar


              • #8
                PHP-Code:

                if($_SESSION['login'])
                  {

                      if(!
                $Formular-abgeschickt)
                        {
                            
                Zeige Eingabeformular
                         
                }
                      elseif(
                $Formular-abgeschickt)
                         {
                            
                Zeige den Adminbereich
                         
                }
                   } 
                Schon mal daran gedacht ?

                Kommentar


                • #9
                  re

                  ne
                  muss in den adminbereich wo ich dann meine formulare (werden noch mehr als zwei) die voneinander abhängig sind bearbeiten kann.

                  Kommentar


                  • #10
                    Re: re

                    Original geschrieben von nakg
                    wenn also weiter gedrückt wurde wird mit
                    PHP-Code:
                    if (isset ($_POST['weiter'])){  // abfrage ob wieter gedrückt 
                        
                    show_erh_name($erh_name,$sp_anzahl ); // dann diese funktion 

                    da steht dann aber in admin.php weiter oben immer noch
                    PHP-Code:
                    if ($_SESSION['login']){ // session wird bei login gesetzt trifft also immer zu 
                        
                    gen_erhebung(); // erste funktion --> zu daten eingeben 
                        
                    $erh_name $_POST['erh_name'];
                        
                    $erh_anzahl $_POST['sp_anzah'];
                        } 
                    und eben genau dies wird dann wieder angezeigt
                    wüsste nicht wie und mit welchr bedingung ich das wegbekomme!
                    dann nutze doch da einfach die gleiche bedingung, nur negiert:
                    PHP-Code:
                    if ($_SESSION['login']){ // session wird bei login gesetzt trifft also immer zu 
                        
                    if ( !isset($_POST['weiter'])) { // abfrage ob weiter NICHT gedrückt 
                                          
                    gen_erhebung(); // erste funktion --> zu daten eingeben 
                                          
                    ... 
                    was zum henker kapierst du denn daran bitte nicht?
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      noch ne frage

                      danke erst mal

                      funkt soweit
                      wenn ich nun im zweiten formular (nachdem das erste nicht mehr angezeigt wird) wieder einen button weiter einbau und dann eine 3 funktion mit einem 3 formular aurufen möchte ( erstes und zweites sollen dann wieder nicht angezeigt werden) funkt das dann genauso
                      oder sollte mann jeweils in den funktionen( formularen) variable setzten und die dann auf die gültigkeit prüfen

                      dh: ich frage garnicht ab ob weiter gesetzt ist sondern ob andere variablen übergben werden ??

                      hoffe nerv dich mit meiner dummen fragerei nicht zu sehr aber aller anfang ist schwer

                      Kommentar


                      • #12
                        Ja, eigentlich schon.

                        Hast dann eben noch :

                        PHP-Code:
                        if (isset ($_POST['weiter2'])){  // abfrage ob weiter2 gedrückt wurde 
                        Manchmal ist es aber übersichtlicher lieber eine neue Seite mit dem Formular anzusprechen.
                        Also für jeden größeren Schritt lieber ne neue Seite, um die Verschachtelung nicht zu kompliziert werden zu lassen (schließlich muss sich der Interpreter da jedesmal durchwurschteln), deine Login-Überprüfung könntest du dann auf jeder Seite includieren.

                        Kommentar

                        Lädt...
                        X