Ankündigung

Einklappen
Keine Ankündigung bisher.

submit button nacheinander enablen

Einklappen

Neue Werbung 2019

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

  • submit button nacheinander enablen

    Hallo,

    ich hab ein Skript mit html und php geschrieben, in dem es mehrere Submit Buttons gibt.
    Jetzt will ich, dass die nur nacheinander gedrückt werden können.
    Im html code kann ich die Button ja disablen. Nur weiß ich nicht wie ich den nächsten Button enablen kann.
    Ich würde das gern im php code bei der Funktio 'isset' machen.
    So sollte es ablaufen (ich geh jetzt mal von 3 Button aus):
    - bei Beginn soll nur Button 1 enabled sein, Button 2 und 3 disabled (kann ich ja im html code so einstellen)
    - wenn Button 1 gedrückt wird, soll Button 2 enabled und Button 1 disabled werden
    - wenn Button 2 gedrückt wird, soll Button 3 enabled und Button 2 disabled werden
    - wenn Button 3 gedrückt wird, soll Button 1 enabled und Button 3 disabled werden
    Kann mir da jemand weiterhelfen? Kann das in php gelöst werden?


  • #2
    Hallo,

    im Grunde kannst du das z.B. so lösen:
    PHP-Code:
    <input type="submit" name="mybutton" value="Submit 1">
    <input type="submit" name="mybutton" value="Submit 2"<?php echo (isset($_POST['mybutton']) && $_POST['mybutton'] == 'Submit 1' ' disabled' ''); ?>>
    <input type="submit" name="mybutton" value="Submit 3"<?php echo (isset($_POST['mybutton']) && $_POST['mybutton'] == 'Submit 2' ' disabled' ''); ?>>
    Aber im Zweifel kann ich auch einen Button via Firebug enablen wenn es disabled war - und diesen absenden also musst du das auch Scriptmäßig via Session (Step1 - passed) oder so prüfen.
    Gruß,
    SebTM

    Kommentar


    • #3
      Wenn du den Vorschlag von SebTM umsetzen möchtest solltest du noch folgendes beachten:
      - Mit dem Submitbutton sendest du jedesmal das Formular zum Server (Ausnahme: Das Absenden wird durch Javascript unterbunden). Schau dir hierzu mal das sog. Affenformular an.
      - Der Code zeigt nur "im Grunde" die Lösung und enthält noch Flüchtigkeitsfehler. z.B. die Schlüssel in $_POST sind die Namen ("mybutton") und nicht der type.
      - Einige ältere IE-Versionen übertragen kein Value beim Submitbutton.

      LG jspit
      PHP-Klassen auf github

      Kommentar


      • #4
        Zitat von jspit Beitrag anzeigen
        - Der Code zeigt nur "im Grunde" die Lösung und enthält noch Flüchtigkeitsfehler. z.B. die Schlüssel in $_POST sind die Namen ("mybutton") und nicht der type.
        Danke für den Hinweis, hab den Flüchtigkeitsfehler ausgebessert - normalerwiese spricht nichts dagegen den Button auch "submit" zu nennen aber ich wollte das gerade weil es der Typ des Buttons ist und zu verwirrung führen kann nicht tun und hab vergessen das in $_POST anzupassen
        Gruß,
        SebTM

        Kommentar


        • #5
          Oder per js -> http://jsfiddle.net/der_robert/rzkbmu7c/

          Allerdings besteht auch hier das "problem", mit dem entfernen von disabled per firebug oder so, welches SebTM schon angesprochen hat.

          Kommentar


          • #6
            Erstmal vielen Dank für die Antworten.
            Leider komm ich damit noch nicht ganz klar, bzw. die Buttons sind bei mir immer enabled.
            Ich hab mal ein Beispiel von einer Seite, mit der eine LED durch einen Raspberry Pi eingeschaltet werden kann. Das funktioniert soweit auch.
            Jetzt würde ich nur noch gern (wie in den Kommentaren beschrieben) den nächsten Button enablen und den gedrückten disablen.

            PHP-Code:
            <html>
            <head>
            <meta name="viewport" content="width=device-width" />
            <title>GPIO über PHP schalten</title>
            </head>
            <body>
            GPIO 17 schalten:
            <form method="post" action="gpio.php">
            <input type="submit" value="Licht ein" name="Lichtein">
            <input type="submit" value="Licht aus" name="Lichtaus">
            </form>
             
            <?php
            $modeon17 
            trim(@shell_exec("/usr/local/bin/gpio -g mode 17 out"));
            if(isset(
            $_POST['Lichtein'])){
                
            $val trim(@shell_exec("/usr/local/bin/gpio -g write 17 1"));
                echo 
            "Licht17 ist an"
                   
            // hier soll jetzt der Button 'Lichtaus' enabled werden 
                   // und der Button 'Lichtein' disabled werden

            }
            else if(isset(
            $_POST['Lichtaus'])){
                
            $val trim(@shell_exec("/usr/local/bin/gpio -g write 17 0"));
                echo 
            "Licht17 ist aus";
                   
            // hier soll jetzt der Button 'Lichtein' enabled werden 
                   // und der Button 'Lichtaus' disabled werden
            }
            ?>
            </body>
            </html>
            Den button 'Lichtaus' kann ich ja bei Beginn schon so disablen:
            PHP-Code:
            <input type="submit" value="Licht aus" name="Lichtaus" disabled="disabled"
            Das ist jezt nur ein Beispiel. Eigentlich nicht das, was ich für mein Projekt vor habe. Aber als Beispiel sollte es ausreichen.

            Kommentar


            • #7
              SebTM hat doch schon eine Lösung in #2 gepostet. Ich sehe jedoch nicht, das du auch nur versucht hast das bei dir einzubauen.
              PHP-Klassen auf github

              Kommentar


              • #8
                Ich habe es schon versucht. Wenn ich die nur den code von SebTM nehme, hab ich drei buttons die willkürlich gedrückt werden können.
                Ich habe auch versucht das in meinen code einzubauen, jedoch hat das nicht funktioniert.
                Und da auch nur die drei buttons vom code SebTM immer gedrückt werden können (egal was zuvor gedrückt wurde), dachte ich das Problem liegt vielleicht schon da dran.

                Kommentar

                Lädt...
                X