inspiron: form action="seite1" oder "seite2"

Hallo,
in einem Formular wird mit einem Button eine neue Seite1(bericht_prod_pdfmail.php) gestartet. Diese wird mit

  
<form action="/Bericht/bericht_prod_pdfmail.php" method="post">  
<?php  
if (isset($_POST['submit']))  
  
{  
  $_POST['Datum'];  
  $_POST['Kategorie'];  
  }  
?>  
<div class="knopf">  
     <p><input class="submit" type="submit" value="Bericht senden" onclick="alert('Bericht wird generiert und per Mail versendet!');"/></p>  
   </div>  

~~~aufgerufen.  
  
Wie kann ich mit einem zweiten Button auf dem Formular eine andere Seite2 (bericht\_prod\_pdf.php) starten? Diese benötigt aber auch den Inhalt von "$\_POST['Datum'];  
 $\_POST['Kategorie'];"!  
  
~~~html
  
   <div class="knopf">  
     <p><input class="submit" type="submit_2" name="Bericht drucken" value="drucken" onclick="alert('Bericht wird generiert und steht dann zum drucken bereit!');"/></p>  
   </div>

Gruß

  1. Gar nicht. Der Button kann nicht über die form-action entscheiden, es sei denn, Du setzt diese beim onclick-Event über JavaScript neu; dann riskierst Du aber, Nutzer ohne JS auszuschließen.

    Was Du jedoch machen kannst: innerhalb der Seite, auf die das Formular verweist, kannst Du beide Funktionen unterbringen.

    Gruß, LX

    --
    RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
    RFC 1925, Satz 11a: Siehe Regel 6a
    1. Was Du jedoch machen kannst: innerhalb der Seite, auf die das Formular verweist, kannst Du beide Funktionen unterbringen.

      Naja, das ist ja mein Problem. Die Seite, die aufgerufen wird (nicht sichtbar), generiert ein pdf und sendet dieses dann per mail. Da kann ich nichts einfügen oder anders machen.
      Darum dachte ich 2 Seiten zu basteln, eine die generiert+mailt und eine die generiert+drucken. Ich weiß nicht wie ich das sonst machen soll.

      Gruß

      1. würde das funktionieren?
        kann ich an dem unteren Button noch ein "onclick="alert" anfügen?

        Gruß

        <form id="form" action="/bericht_prod_pdfmail.php" method="post">  
        <?php  
        if (isset($_POST['submit']))  
        {  
          $_POST['Datum'];  
          $_POST['Schicht'];  
        }  
        ?>  
          
        <input type="submit" value="Bericht senden" onclick="alert('Tagesbericht wird generiert und per Mail versendet!');"/>  
          
        <input type="submit" value="action" onclick="document.getElementById('form').action='/bericht_prod_pdf.php'">  
        
        

        </form>

        1. ...o.k. ich habs, es geht.
          Wie kann ich den bei click auf diesem Button noch folgende Meldung anzeigen?

          "onclick=alert('Tagesbericht wird generiert und per Mail versendet!');"

          <input type="submit" value="action" onclick="document.getElementById('form').action='/bericht_prod_pdf.php'">  
          
          
          1. hab mal was probiert, geht aber nicht! habt ihr bitte mal nen Tip?!

            Gruß

            <script type="text/javascript">  
            function action()  
            {  
              onclick="alert('Tagesbericht wird generiert und steht zum drucken zur verfügung!');  
              onclick="document.getElementById('form').action='/Fehlerbericht/bericht_prod_pdfmail.php'"  
            }  
            </script>  
              
            <p><input class="submit" type="submit" value="Bericht senden" onclick="action()"/></p>
            
            1. Hiho!

              onclick="alert('Tagesbericht wird generiert und steht zum drucken zur verfügung!');
                onclick="document.getElementById

              Aehm. Nimm doch einfach das onclick da raus. Die Funktion wird doch auch eh auf onclick aufgerufen. Eventhandler in JS werden eh anders notiert. Das muesstest Du dann auch schon vor dem Klick machen.

              In einem HTML Eventhandler sollte man, extrem drauf achten, seine JS-Befehle korrekt abzuschliessen (das ; ist kein unnuetzer Witz). <input class="submit" type="submit" value="Bericht senden" onclick="alert('zeile 1'); alert('zeile 2');"/>

              --
              "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                    - T. Pratchett
              1. Hiho!

                onclick="alert('Tagesbericht wird generiert und steht zum drucken zur verfügung!');
                  onclick="document.getElementById

                Aehm. Nimm doch einfach das onclick da raus. Die Funktion wird doch auch eh auf onclick aufgerufen. Eventhandler in JS werden eh anders notiert. Das muesstest Du dann auch schon vor dem Klick machen.

                In einem HTML Eventhandler sollte man, extrem drauf achten, seine JS-Befehle korrekt abzuschliessen (das ; ist kein unnuetzer Witz). <input class="submit" type="submit" value="Bericht senden" onclick="alert('zeile 1'); alert('zeile 2');"/>

                »»

                so?
                <input class="submit" type="submit" value="Bericht senden" onclick="alert('Tagesbericht wird generiert und versendet!'); "document.getElementById('form').action='/Fehlerbericht/bericht_prod_pdfmail.php';"/>

                1. so?
                  <input class="submit" type="submit" value="Bericht senden" onclick="alert('Tagesbericht wird generiert und versendet!'); "document.getElementById('form').action='/Fehlerbericht/bericht_prod_pdfmail.php';"/>

                  Fast. Da sind ein paar Hochkommas zuviel. Einfach den gewuenschten Code einfuegen und jeden Befehl mit einem Semikolon trennen.

                  --
                  "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                        - T. Pratchett
                  1. Fast. Da sind ein paar Hochkommas zuviel. Einfach den gewuenschten Code einfuegen und jeden Befehl mit einem Semikolon trennen.

                    ohh, danke habe es nicht gesehen!
                    jetzt funktioniert es.
                    ich mache jetzt schluß, kann nicht mehr gucken ;-)

                    Gruß und großes DANKE

  2. Fuege ein zweites Formular, bestehend aus den beiden Felden (meinwegen hidden, wenn sie nicht editiert werden sollen) und dem Button ein.

    Ansonsten eben wie LX gesagt hat: Mit JS oder indem Du beide Funktionen in der gleichen Ressource vorhaelst.

    --
    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
          - T. Pratchett
  3. hi,

    Wie kann ich mit einem zweiten Button auf dem Formular eine andere Seite2 (bericht_prod_pdf.php) starten? Diese benötigt aber auch den Inhalt von "$_POST['Datum'];

    Es gibt nur eine action-Note. Warum eine zweite oder gar dritte Seite? Warum überhaupt zwei Dateien für ein Formular? Eine Datei reicht vollkommen. Mit einer sauberen Kontrollstruktur in dieser Datei. Und keine Zeichen vor <?php sowie auch kein Zeichen nach ?> (auch keine Leerzeichen/Leerzeilen!).

    In der Kontrollstruktur fragst Du sog. Schlüsselparameter ab, das sind z.B. die Namen der Submit-Buttons. Alle weiteren Parameter sind common.

    http://rolfrost.de/phpbasic.html

    Hotti