Form prob -> Check

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

  • Form prob -> Check

    Ich weiß nicht, ob das hierher gehört, deswegen schon mal ne entschuldigung an die mods, wenn nicht.

    ich habe folgendes prob:

    - wenn der user die eingabefelder ausgefüllt hat, hat er zwei buttons
    - einen mit check
    - einen mit update
    - klickt er auf check, soll dieselbe seite aufgerufen werden und die
    länge der zeichen oder der inhalt u.s.w geprüft werden
    - klickt er auf update, soll er zur hauptseite geleitet werden, in der
    das update durchgeführt wird.

    mein form sieht so aus:
    PHP-Code:
    <form method="post" action="index.php?modul=user">
    .. 
    Formular ..
    </
    form
    Wie realisiere ich das?
    Signatur-Text ...

  • #2
    Re: Form prob -&gt; Check

    Original geschrieben von dani_o

    Wie realisiere ich das?
    Grundlagen lernen, was sonst ... oder zeige was du dir überlegst hast, dann bekommst du auch Tipps

    Ich verschiebe erstmal auf Projekthilfe

    Kommentar


    • #3
      moin,

      na das ist eigentlich ganz einfach. also du änderst an der action der form nichts. gibst den beiden submits einen namen und prüfst,
      nachdem die form verschickt wurde, welcher submit das senden der form ausgelöst hat. z.b. so:
      PHP-Code:
      if ( $_POST )
      {
         if ( isset(
      $_POST["update"]) )
         {
             
      // update..
         
      }

         if ( isset(
      $_POST["check"]) )
         {
             
      // check..
         
      }

      Kommentar


      • #4
        Das ist mir schon klar! Vielleicht habe ich mich falsch ausgedrückt!

        ist button=check -> rufe seite index.php?modul=user auf
        ist button=update -> rufe seite index.php auf
        Signatur-Text ...

        Kommentar


        • #5
          Du kannst es einmal mit einer PHP-Weiterleitung machen oder aber mit JS. Für JS hab ich ein nicht getestetes Beispiel, die Form:
          PHP-Code:
          <form name="form1" method="post" action="index.php" id="frm_test">
              <
          table width="241"  border="0" cellspacing="0" cellpadding="0">
                  <
          tr>
                      <
          td width="113">Eingabe</td>
                      <
          td width="128"><input type="text" name="textfield"></td>
                  </
          tr>
                  <
          tr>
                      <
          td><div align="center">
                        <
          input type="submit" name="Submit" value="check" onClick="frm_send(this)">
                        </
          div></td>
                      <
          td><div align="center">
                        <
          input type="submit" name="Submit" value="update"  onClick="frm_send(this)">
                        </
          div></td>
                  </
          tr>
              </
          table>
          </
          form
          Das JS-Script:
          PHP-Code:
          <script language="javascript">
              function 
          frm_send(objBtn)
              {
                  var 
          objFrm document.getElementById('frm_test');
                  if ( 
          typeof(objFrm) == 'object' )
                  {        
                      if ( 
          objBtn.value == 'check' )
                      {
                          
          objFrm.action 'index.php?modul=user';
                          
          objFrm.submit();
                      }
                      
                      if ( 
          objBtn.value == 'update' )
                      {
                          
          objFrm.action 'index.php';
                          
          objFrm.submit();
                      }
                  }
                  else
                      
          alert("Die Form wurde nicht gefunden!!");
              }
          </
          script

          Kommentar


          • #6
            Das Problem dabei ist, dass kein Javascript verwendet werden soll!
            Signatur-Text ...

            Kommentar


            • #7
              Das hättest du auch mal vorher in deinem ersten Beitrag erwähnen können. Naja, wie dem auch sei. Dann musst du es halt mit PHP lösen.
              Also, die Form wird versendet. Irgendeine URL wird aufgerufen, da prüfst du dann welcher Submit die Form versendet hat. Wenn es sich um ein "check" handelt, speicherst du die $_POST-Variablen in der Session zwischen und leidest die Seite weiter an die Seite, die ein check durchführen soll. In dieser Datei greifst du dann auf die Variablen in der Session zu.

              Kennst du dich denn mit Sessions aus?
              Zuletzt geändert von reallife; 08.12.2005, 10:00.

              Kommentar


              • #8
                Ja klar, wenn ich aber den filezilla verwende, funzt die automatische weiterleitung nicht. Das ist ja das prob! Diese Idee hatte ich auch schon. ich möchte aber, dass jeder user mit jedem browser dasselbe ergebnis erzielt. dabei berücksichtige ich ie, mozilla, filezilla, opera, netscape und konqueror!

                Das problem macht nur der filzilla in dieser hinsicht, da er die weiterleitung nicht realisiert. da ich im mainbereich dynamisch arbeite, kann ich an dieser stelle nur per onload=... den refresh erzwingen. im filezilla wird dieses ignoriert, da der bodybereich schon deklariert wurde.
                Signatur-Text ...

                Kommentar


                • #9
                  Wie machst Du denn die Weiterleitung? Mithilfe von Metatags oder mit der PHP Funktion "header()" ?

                  Kommentar


                  • #10
                    <body onload="...">
                    Signatur-Text ...

                    Kommentar


                    • #11
                      Original geschrieben von dani_o
                      <body onload="...">
                      OffTopic:
                      ^^ soviel zum Thema, es sollte kein JavaScript verwendet werden..


                      Was spricht denn gegen eine Weiterleitung per header?
                      Bevor HTML-Header gesendet werden, also ganz normale HTML-Tags, startest du "<? ob_start(); ?>", aber noch vor "session_start();" und am Ende der HTML-Datei beendest du das ganze mit "<? ob_end_flush(); ?>"

                      Je nachdem wo du die Weiterleitung machen willst, kannst du dann mit header() arbeiten.

                      Also, noch ein kurzes Beispiel:
                      PHP-Code:
                      <?
                      ob_start();
                      session_start();
                      ?>

                      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
                      <html>
                      <head>
                      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                      <title>Unbenanntes Dokument</title>
                      </head>

                      <body>
                      <?
                      header("Location: index.php?wohin=auchimmer");
                      ?>
                      </body>
                      </html>

                      <?
                      ob_end_flush();
                      ?>

                      Kommentar


                      • #12
                        Der Mainbereich wird dynamisch eingefügt, das heißt, dass ich den header im Mainbereich selber nicht neu schreiben kann, da er schon vorhanden ist.

                        ist möchte auch jetzt nicht den kompletten headerbereich neu erstellen, da dieser auch dynamisch erzeugt wird. Klar ist mir, dass dies eigentlich der richtige weg wäre! Nunja ...

                        da ich ja in der hinsicht echt javascript verwende könnte ich das ja per button -> onclick = ... machen. so dass per layer die anzeige ausgegeben wird, oder?
                        Signatur-Text ...

                        Kommentar


                        • #13
                          Ja so könntest du es machen oder du greifst auf mein JavaScript Beispiel zurück. Das sollte auch funktionieren.

                          Kommentar

                          Lädt...
                          X