Form prob -> Check

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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..
         
      }

      Comment


      • #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 ...

        Comment


        • #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

          Comment


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

            Comment


            • #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?
              Last edited by reallife; 08-12-2005, 09:00.

              Comment


              • #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 ...

                Comment


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

                  Comment


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

                    Comment


                    • #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();
                      ?>

                      Comment


                      • #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 ...

                        Comment


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

                          Comment

                          Working...
                          X