Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] submit deaktivieren -> php-script wird nicht ausgeführt

Einklappen

Neue Werbung 2019

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

  • [Erledigt] submit deaktivieren -> php-script wird nicht ausgeführt

    Hallo,
    habe da mal eine Frage, wenn ich mein submit wie folgt deaktivieren möchte, funktioniert dies zwar, allerdings wird dann mein Formular nicht mehr abgeschickt bzw. mein PHP-Script (if(isset($_POST['submit'])) {...) wird nicht mehr ausgeführt.

    Wenn ich das javascript-snippet komplett entferne und mein script ohne dem starte funktioniert es ohne Probleme. (Also kein PHP-Spezifischer Fehler, vermutlich)

    Jemand eine Idee wie ich trotzdem den submit-button deaktivieren kann nachdem das Formular abgeschickt worden ist?

    Hier die wesentlichen Bestandteile:

    PHP-Code:
    <script language="JavaScript" type="text/javascript">
    <!--
    function sendForm(obj) { 
        obj.disabled='disabled'; 
        obj.value='Transfer information';
        obj.form.submit(); 

    //-->
    </script>

    <?php
    if(isset($_POST['submit1'])) {
    ...
    ...
    ...
    }
    ?>

    <form id="form1" name="form1" enctype="multipart/form-data" method="post" action="" >

    <input type="submit" name="submit1" value="Change" onclick="sendForm(this);" />

    Danke!


  • #2
    Wenn man sich erst mal ein bisschen Grundlagenwissen über HTML aneignet, bevor man mit PHP herumzuspielen beginnt - dann müsste man solche Fragen eigentlich gar nicht stellen ...

    Forms in HTML documents, 17.13.2 Successful controls


    Jemand eine Idee wie ich trotzdem den submit-button deaktivieren kann nachdem das Formular abgeschickt worden ist?
    Reihenfolge umdrehen - erst abschicken, dann disablen - könnte helfen, wenn der Browser das Absenden „schnell genug“ macht; da würde ich mich aber nicht drauf verlassen.

    Alternative: Nicht disablen, sondern nur dafür sorgen, dass auf Klicks nur noch false zurückgegeben wird; Formatierung dann über CSS entsprechend anpassen.

    Kommentar


    • #3
      Zitat von ChrisB Beitrag anzeigen
      Reihenfolge umdrehen - erst abschicken, dann disablen - könnte helfen, wenn der Browser das Absenden „schnell genug“ macht; da würde ich mich aber nicht drauf verlassen.

      wie kann ich das umsetzen?

      Kommentar


      • #4
        Die Reihenfolge zweier Befehle in deiner Funktion umzudrehen, bekommst du alleine hin ...?

        Kommentar


        • #5
          Code:
          <?php 
          if(isset($_POST['submit1'])) { 
          ... 
          ... 
          ... 
          } 
          ?> 
          <script language="JavaScript" type="text/javascript"> 
          <!-- 
          function sendForm(obj) {  
              obj.disabled='disabled';  
              obj.value='Transfer information'; 
              obj.form.submit();  
          }  
          //--> 
          </script>
          <form id="form1" name="form1" enctype="multipart/form-data" method="post" action="" > 
          
          <input type="submit" name="submit1" value="Change" onclick="sendForm(this);" />
          falls du das so meinst, das funktioniert ebenfalls nicht.


          ABER, ich habe nun eine andere Methode gefunden mit der es funktioniert, und zwar:

          Code:
          <input type="hidden" id="hidden1" /><input type="submit" name="submit1" value="Change" onclick="this.disabled=true;this.value='Transfer information...';hidden1.name=this.name;hidden1.value=this.value;this.form.submit()" />
          Danke trotzdem für deine Hilfe!

          Kommentar


          • #6
            Zitat von mygov Beitrag anzeigen
            falls du das so meinst
            Nein, so meinte ich das nicht - weil da in deiner JavaScript-Funktion die einzelnen Befehle immer noch in genau der gleichen Reihenfolge da stehen, wie vorher.

            Kommentar


            • #7
              FYI:

              Code:
              <script language="JavaScript" type="text/javascript"> 
              <!-- 
              function sendForm(obj) {  
              obj.form.submit();  
              obj.disabled='disabled';
              obj.value='Transfer information...';
              }  
              //--> 
              </script>
              geht auch nicht..

              Kommentar


              • #8
                Code:
                <script language="JavaScript" type="text/javascript">
                <!--
                function sendForm(obj) {
                    obj.value='Transfer information';
                    //obj.form.submit();
                obj.disabled='disabled';
                 }
                //-->
                </script>
                <?php
                if(isset($_POST['submit1'])) {
                ...
                ...
                ...
                }
                ?>
                
                <form id="form1" name="form1" enctype="multipart/form-data" method="post" action="">
                
                <input type="submit" name="submit1" value="Change" onclick="sendForm(this);" />
                webmasterlounge
                Die deutsche Webmaster-Community

                Kommentar


                • #9
                  1. Submit Button entfernen und über einen einfachen Button steuern(JS) -> funktioniert aber nicht ohne JS -> des weiteren muss man aufpassen, was auf Eingaben in Feldern pasiert(input-Feld + Entertaste)
                  2. Ins Formattribut -> action="javascript:void(0)" und dann im Button-Clickevent deine action setzen und submitten. -> geht dann aber ohne JS auch nicht.
                  "My software never has bugs, it just develops random features."
                  "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                  Kommentar


                  • #10
                    Was soll das überhaupt für einen tieferen Sinn haben? Ohne traget-Attribut wird bei Submit sowieso eine neue Seite geladen (action eben). Da ist es sinnfrei, irgendwas zu disablen.
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar

                    Lädt...
                    X