1 Form, 2 Buttons

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

  • 1 Form, 2 Buttons

    Ich habe das Problem das ich 1 >form habe und dafür 2 buttons.

    Wenn man auf Button 1 klickt sollen die Datensätze in den Inputs in die tabelle [COLOR=crimson]news[/COLOR] gespeichert werden, wenn man auf den Burron 2 klickt sollen die Datensätze in den inputs in die Tabelle [COLOR=crimson]ablage[/COLOR] gespeichert werden.

    Geht sowas? Und wenn, wie mache ich das kann mir bitte jemand helfen???

    Paddy

  • #2
    im onClick-Event des Buttons das Ziel über window.document.formname.action angeben.

    Kommentar


    • #3
      dann bräuche ich doch 2 forms, oder??

      momentan sieht das bei mir so aus:


      PHP-Code:
      <?php
        
      If(@$add != "done"){
      ?>

      <form method="POST" action="index2.php?section=newswrite&add=done">
      <p><textarea rows="9" name="test" cols="53"></textarea>
        </p>
      </form>

      <p><input type="submit" value="news" name="B1"><input type="submit" value="ablage" name="B2"></p>


      <?
        }else{
          If(isset($_POST['text'])){
            $sql = "INSERT INTO news (text) VALUES ('".$_POST['text']."');";
            mysql_query($sql) OR die(mysql_error());
            unset($_POST['text']);
      echo  "<br><br>\t\t\t Die News wurde erfolgreich gespeichert\n";
          }
        }
      ?>
      und ich will aber in 2 tabellen speichern. Zu beachten ist das die beiden tabellen das selbe attribut haben.

      paddy

      Kommentar


      • #4
        oder
        <input type="submit" name="news" value="In News eintragen"> <input type="submit" name="ablage" value="In Ablage eintragen">

        und dann im code:

        PHP-Code:
        <?php

        if(isset($_POST['news'])) { 
        // In news eintragn 
        }
        elseif(isset(
        $_POST['ablage'])) {
        // in ablage eintragen
        }
        mfg

        Kommentar


        • #5
          Original geschrieben von Trashar
          oder
          <input type="submit" name="news" value="In News eintragen"> <input type="submit" name="ablage" value="In Ablage eintragen">

          und dann im code:

          PHP-Code:
          <?php

          if(isset($_POST['news'])) { 
          // In news eintragn 
          }
          elseif(isset(
          $_POST['ablage'])) {
          // in ablage eintragen
          }
          mfg
          Dies halte ich für die optimale Lösung in diesem Fall.


          An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

          Kommentar


          • #6
            Ich habe das jetzt so gemacht, ist das so richtig?

            PHP-Code:
            <?php
              
            If(@$add != "done"){
            ?>


            <form name=form action="index2.php?section=newswrite&add=done"  METHOD=POST >
            <p align="center"><br>
            <input type="text" name="head" size="60" value="">
            </p><p align="center">
            <TEXTAREA name="message" rows=13 wrap="physical" cols=56 value="">
            </TEXTAREA>
            <br><br>
            <input type="text" name="datum" size="16">
            </p>
            </form>


            <?
              }else{

            if(isset($_POST['news'])) {

                If(isset($_POST['head']) AND isset($_POST['message']) AND  isset($_POST['datum'])){
                  $sql = "INSERT INTO news (head, message, datum) VALUES ('".$_POST['head']."','".$_POST['message']."','".$_POST['datum']."');";
                  mysql_query($sql) OR die(mysql_error());
                  unset($_POST['head']);
                  unset($_POST['message']);
                  unset($_POST['datum']);

            echo  "<br><br>\t\t\t Die News wurde erfolgreich gespeichert\n";
                }
            }

            elseif(isset($_POST['ablage])) {

                If(isset($_POST['head']) AND isset($_POST['message']) AND  isset($_POST['datum'])){
                  $sql = "INSERT INTO ablage (head, message, datum) VALUES ('".$_POST['head']."','".$_POST['message']."','".$_POST['datum']."');";
                  mysql_query($sql) OR die(mysql_error());
                  unset($_POST['head']);
                  unset($_POST['message']);
                  unset($_POST['datum']);

            include "php/ablage.php";

                }
              }
            }

            ?>

            Kommentar


            • #7
              Ich habe das jetzt so gemacht, ist das so richtig?
              nein!

              warum probierst du es nicht mal aus?
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                ich habe es ausprobiert und es ging ja net deswegen frage ich kann ja sein das ich irgendwo ein " oder ein ; oder so vergessen habe aber das das vom grundgerüst richtig ist. kannst du mir bitte schrieben wie das richtig ist? Währe sehr net

                Kommentar


                • #9
                  Währe sehr net
                  wäre nett?

                  - schau mal aufs highlighting ... da fehlt mindestens ein '
                  - schau auf die fehlermeldungen
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar


                  • #10
                    wenn du 2 buttons hast (<input type="submit" .. />)
                    mit verschiedenen namen ..
                    DANN

                    wird bei beiden das formular als ganzen übertragen, aber nur der button der geklickt wurde ..

                    ein einfaches
                    PHP-Code:
                    if (isset($_POST['button1']) {
                      
                    // tu dies ..
                    } elseif (isset($_POST['button2']) {
                      
                    // tu das ..


                    reicht also:
                    sieht man an den beiden ausgaben meines *räusper* proxy ..

                    Code:
                    class stdClass {
                      public $host = 'localhost';
                      public $port = 999;
                      public $method = 'POST';
                      public $uri = '/profil';
                      public $httpVersion = 'HTTP/1.1';
                      public $headers =
                      array (
                        'Accept' =>
                        array (
                          0 => 'image/gif',
                          1 => 'image/x-xbitmap',
                          2 => 'image/jpeg',
                          3 => 'image/pjpeg',
                          4 => 'application/x-shockwave-flash',
                          5 => 'application/vnd.ms-excel',
                          6 => 'application/vnd.ms-powerpoint',
                          7 => 'application/msword',
                          8 => '*/*',
                        ),
                        'Accept-Language' =>
                        array (
                          0 => 'de-at',
                          1 => 'de;q=0.8',
                          2 => 'en-us;q=0.5',
                          3 => 'en-gb;q=0.3',
                        ),
                        'Content-Type' => 'application/x-www-form-urlencoded',
                        'Accept-Encoding' =>
                        array (
                          0 => 'gzip',
                          1 => 'deflate',
                        ),
                        'User-Agent' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
                        'Content-Length' => 60,
                        'Connection' => 'Keep-Alive',
                        'Cache-Control' => 'no-cache',
                      );
                      public $post =
                      array (
                        'usrname' => 'Coragon',
                        'passwd' => '*****',
                        'insert' => 'einfuegen',
                      );
                    }
                    
                    class stdClass {
                      public $host = 'localhost';
                      public $port = 999;
                      public $method = 'POST';
                      public $uri = '/profil';
                      public $httpVersion = 'HTTP/1.1';
                      public $headers =
                      array (
                        'Accept' =>
                        array (
                          0 => 'image/gif',
                          1 => 'image/x-xbitmap',
                          2 => 'image/jpeg',
                          3 => 'image/pjpeg',
                          4 => 'application/x-shockwave-flash',
                          5 => 'application/vnd.ms-excel',
                          6 => 'application/vnd.ms-powerpoint',
                          7 => 'application/msword',
                          8 => '*/*',
                        ),
                        'Accept-Language' =>
                        array (
                          0 => 'de-at',
                          1 => 'de;q=0.8',
                          2 => 'en-us;q=0.5',
                          3 => 'en-gb;q=0.3',
                        ),
                        'Content-Type' => 'application/x-www-form-urlencoded',
                        'Accept-Encoding' =>
                        array (
                          0 => 'gzip',
                          1 => 'deflate',
                        ),
                        'User-Agent' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
                        'Content-Length' => 58,
                        'Connection' => 'Keep-Alive',
                        'Cache-Control' => 'no-cache',
                      );
                      public $post =
                      array (
                        'usrname' => 'Coragon',
                        'passwd' => '******',
                        'update' => 'aendern',
                      );
                    }
                    hier das verwendete formular:

                    Code:
                    <form method=post action=http://localhost:999/profil>
                      <input type=text name=usrname />
                      <input type=text name=passwd />
                      <input type=submit name=insert value=einfuegen />
                      <input type=submit name=update value=aendern />
                    </form>
                    warum also kompliziert mit javascript etc wenns einfach auch geht ?
                    mfg,
                    [color=#0080c0]Coragon[/color]

                    Kommentar


                    • #11
                      Mit &lt;input&gt; OK, aber mit &lt;button&gt; ?

                      Hallo,

                      ich hatte ein aehnliches Problem.

                      Ich habe allerdings <button> Tags benutzt. Die uebertragen ihr Value aber immer, egal ob geklickt oder nicht.

                      Gibt es dafuer auch eine einfache Loesung ohne JS?

                      Danke
                      Liberate me domine ex eo inferiis...

                      Kommentar


                      • #12
                        ja, <input type="submit" .. />
                        mfg,
                        [color=#0080c0]Coragon[/color]

                        Kommentar


                        • #13
                          Danke fuer Deine Antwort, aber was meinst Du wohl, warum ich diesen Thread benutzt habe und mein Post an das Ende der <input> Diskussion gestellt habe?

                          Ich benutze jetzt uebrigens doch immer explizit verschiedene Formulare (fuer die jeweiligen submit-Buttons) mit ?action=mache_dies_und_das im form-action und switch.
                          Liberate me domine ex eo inferiis...

                          Kommentar


                          • #14
                            unfein gelöst

                            <input type="hidden" name="action" value="mache_dies" />

                            Kommentar


                            • #15
                              Fuer die "unfeine" Loesung gibt es eine Erklaerung:

                              Ich mag die hidden fields nicht so besonders.
                              Sie haben bei mir zu oft Design Probleme bereitet und ich habe mir es daher angewoehnt, wenn ich doch eh schon ein Form habe, die Action-Eigenschaft fuer die Uebergabe zu benutzen.

                              Warum ist die Methode unfein?
                              Liberate me domine ex eo inferiis...

                              Kommentar

                              Lädt...
                              X