Gerd: Button

Wie kann ich mit einem Button abwechselnd mal das eine mal das andere CGI ausfuehren
um z.Bleistifft : etwas ein und ausschalten

Der Button soll auch seine Anzeige gleich mit aender von z.B. "an" auf "aus" und dann wider "an" usw......

  1. Hallo Gerd

    Wie kann ich mit einem Button abwechselnd mal das eine mal das andere CGI ausfuehren
    um z.Bleistifft : etwas ein und ausschalten
    Der Button soll auch seine Anzeige gleich mit aender von z.B. "an" auf "aus" und dann wider "an" usw......

    Probier mal so was:

    <html><head><title>Test</title>
    <script language="JavaScript">
    function changeAction()
    {
    if(document.Testform.action == "/cgi-bin/script1.cgi");
    {
        document.Testform.action = "/cgi-bin/script2.cgi";
        document.Testform.Sendbutton.value = "aus";
        return(true);
    }
    else
    {
        document.Testform.action = "/cgi-bin/script1.cgi";
        document.Testform.Sendbutton.value = "an";
        return(true);
    }
    }
    </script>
    </head><body>
    <form name="Testform" action="/cgi-bin/script1.cgi"
    onSubmit="return changeAction()">
    <input type=text size=40 name="Eingabe">
    <input type=submit name="Sendbutton" value="an">
    </form>
    </body></html>

    ist nicht getestet, kann also Fehler enthalten.

    viele Gruesse
      Stefan Muenz

    1. Wie kann ich mit einem Button abwechselnd mal das eine mal das andere CGI ausfuehren
      um z.Bleistifft : etwas ein und ausschalten
      Der Button soll auch seine Anzeige gleich mit aender von z.B. "an" auf "aus" und dann wieder "an" usw......

      Hi!

      Es geht auch ohne Javascript, mit CGI:

      Zuerst brauchst Du eine Seite, die der Surfer aufruft. Dort ist dann der "An"-Button und  <form ...action=an.cgi>
      In dem Script ("an") gibst Du die Seite aus, und zwar mit dem "Aus"-Button und dem <from ...action=aus.cgi>. Das "Aus"-Script gibt dann wieder einen Seite mit dem "An"-Button und dem <form ...action=an.cgi>. u.s.w...
      Das läßt sich recht einfach realisieren: Auf dem Server liegt ein template (komplette HTML-Seite), die an den entscheidenden Stellen (form und input) einen Platzhalter hat. Du liest die Datei ein und sendest sie dann zum Browser. An die Stelle der Platzhalter setzt Du die gewünschten Zeilen ein.

      Hat natürlich einen Nachteil: die Seite wird immer neu geladen, geht dafür aber auch bei "vorsichtigen" Usern, die JS ausgeschaltet haben.

      Gruß Frank

      1. Zuerst will ich mich fuer die muehe die ihr euch gemacht habt bedanken, ich finde das super
        das einem hier so geholfen wird.

        Aber wie mach ich das wenn auf einer Seite 20 Button sind.

        Wie kann ich mit einem Button abwechselnd mal das eine mal das andere CGI ausfuehren
        um z.Bleistifft : etwas ein und ausschalten
        Der Button soll auch seine Anzeige gleich mit aender von z.B. "an" auf "aus" und dann wieder "an" usw......

        Hi!

        Es geht auch ohne Javascript, mit CGI:

        Zuerst brauchst Du eine Seite, die der Surfer aufruft. Dort ist dann der "An"-Button und  <form ...action=an.cgi>
        In dem Script ("an") gibst Du die Seite aus, und zwar mit dem "Aus"-Button und dem <from ...action=aus.cgi>. Das "Aus"-Script gibt dann wieder einen Seite mit dem "An"-Button und dem <form ...action=an.cgi>. u.s.w...
        Das läßt sich recht einfach realisieren: Auf dem Server liegt ein template (komplette HTML-Seite), die an den entscheidenden Stellen (form und input) einen Platzhalter hat. Du liest die Datei ein und sendest sie dann zum Browser. An die Stelle der Platzhalter setzt Du die gewünschten Zeilen ein.

        Hat natürlich einen Nachteil: die Seite wird immer neu geladen, geht dafür aber auch bei "vorsichtigen" Usern, die JS ausgeschaltet haben.

        Gruß Frank

        1. Aber wie mach ich das wenn auf einer Seite 20 Button sind.

          Tendenziell dadurch, daß Du Dir irgendwo merkst, welcher Schalter gerade welche Stellung einnimmt, und den entsprechenden Teil des HTML-Dokuments jeweils komplett neu generierst.

          Ich habe auf meiner Homepage unter http://www.homepage.de/home/schroepl/pbm/amtsblat/triumph/formular.htm etwas, das Deiner Anforderung relativ ähnlich ist (aber eine viel kompliziertere Anwendung realisiert, im wesentlichen einen sehr anwendungsspezifischen "Taschenrechner").
          Sag dort mal "Partie starten" und übernimm dann die ganzen im Dialog angebotenen Defaultwerte - es ist im Moment nicht wichtig, was die bedeuten. Danach bist Du "in der Partie drin". Das merkt sich das Formular in einer lokalen Variablen (und in einem Cookie - den zu setzen müßtest Du ihm erlauben).
          Wenn Du jetzt auf den Knopf "Zug ausführen" klickst, dann ändert sich u. a. der Wert dieser lokalen Variablen - und in Abhängigkeit von diesem Wert wird das gesamte Formular völlig neu generiert (Javascript). Dort, wo vorher Eingabefelder waren, sind nun z. B. nur noch normale Tabellenfelder, es gibt andere Buttons als vorher ("Zug zurücknehmen" usw.). Ich "male" einfach alles neu, und meine Funktionen fragen dabei ab, was sie gerade tun sollen - das wiederum hängt davon ab, ob der Benutzer "vor" oder "nach" der "Ausführung" des Zuges war, und das habe ich mir u. a. in dem Cookie gemerkt, den meine Funktionen vor jeder Ausgabe wieder neu lesen und zerhacken.
          Der größe Teil des Quelltextes ist in eine separate Datei "formular.js" im selben Verzeichnis ausgelagert - viel Spaß beim Lesen ... die für Dich interessanten Funktionen sind etwa die letzten fünf der Datei, die ganze Rechnerei vorher ist zu spezifisch für meine Anwendung.