meinolf lutter: submit automatisch nach prüfung

Hallo ich sitze seit zwei Tagen an folgenden Problem.

Ein Javascript Kalender übergibt das angeklickte Datum an einen <html><form> Dieses muss dann Mittels submit bestätigt werden. Und geht dann an eine php Seite. Das funktioniert alles gut.

Ich möchte jetzt das submit nicht mehr anklicken müssen sondern sobald ein neues datum in <form> landet soll dieses automatisch an die php funktion geschickt werden.

<form  method="post" id='myform'>
<input id='datum' type="hidden" size="17" name="Inhalt" required  class="Inhalt" value="<?php echo $_POST['Inhalt']; ?>"  >
<input  type="submit" />
</form>
<?php
$ordner= "./".$_POST["Inhalt"];
?>

Meine erste Idee war das Submit in zeitabständen automatisch zu betätigen. habe ich auch was gefunden. Nur dann wird in den Zeitabständen die PHP Seite refreshd. Und das ist auch blöd.

<!-- alle 5 sek ein submit --> 
<script type="text/javascript">
        function Formular_absenden() {
        document.getElementById('myform').submit()  }
        window.setTimeout('Formular_absenden()', 5000);

</script> 

Was ich gelesen habe müsste so etwas mit ajax zu realisiern sein. Leider habe ich absolut keinen Plan wie. Vielleicht kann mir ja geholfen werden

Gruß Meinolf

  1. Tach!

    Ich möchte jetzt das submit nicht mehr anklicken müssen sondern sobald ein neues datum in <form> landet soll dieses automatisch an die php funktion geschickt werden.

    Klingt so, als ob du dich in das onchange-Event auf dem Eingabefeld einklinken und dabei das Formular absenden möchtest.

    <form  method="post" id='myform'>
    <input id='datum' type="hidden" size="17" name="Inhalt" required  class="Inhalt" value="<?php echo $_POST['Inhalt']; ?>"  >
    <input  type="submit" />
    </form>
    <?php
    $ordner= "./".$_POST["Inhalt"];
    

    Sieht so aus, als ob du den Kontextwechsel nicht beachtest und damit eine der häufigsten Sicherheitslücken im System hast.

    Meine erste Idee war das Submit in zeitabständen automatisch zu betätigen. habe ich auch was gefunden.

    Das klingt gans anders als dein Vorhaben. Was also möchtest du, ein zeitgesteuertes Absenden oder nach Änderungen?

    Was ich gelesen habe müsste so etwas mit ajax zu realisiern sein. Leider habe ich absolut keinen Plan wie. Vielleicht kann mir ja geholfen werden

    Ja, wobei konkret? Bei absolut keinem Plan ist die erste Handlung, sich Wissen zu verschaffen, indem man sich mit der grundlegenden Funktionsweise befasst. Dazu gibt es genügend Dokumentation.

    dedlfix.

    1. @@dedlfix

      Sieht so aus, als ob du den Kontextwechsel nicht beachtest und damit eine der häufigsten Sicherheitslücken im System hast.

      Hier wäre es wohl angebracht, nicht nur einen Artikel zu verlinken, den der Betreffende dann lesen kann oder auch nicht (in Anbetracht des Umfangs also eher nicht), sondern klipp und klar zu sagen:

      echo $_POST['Inhalt']; ist grundsätzlich falsch. Es muss echo htmlspecialchars($_POST['Inhalt']); heißen. Begründung: sonst Sicherheitslücke; näheres im Wiki unter Kontextwechsel.

      Meine erste Idee war das Submit in zeitabständen automatisch zu betätigen. habe ich auch was gefunden.

      Das klingt gans anders als dein Vorhaben. Was also möchtest du, ein zeitgesteuertes Absenden oder nach Änderungen?

      Falsche Frage. Nicht „Was also möchtest du“, sondern: Was ist sinnvoll, ein zeitgesteuertes Absenden oder nach Änderungen?

      Antwort: letzteres.

      LLAP 🖖

      --
      “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
      1. Tach!

        Sieht so aus, als ob du den Kontextwechsel nicht beachtest und damit eine der häufigsten Sicherheitslücken im System hast.

        Hier wäre es wohl angebracht, nicht nur einen Artikel zu verlinken, den der Betreffende dann lesen kann oder auch nicht (in Anbetracht des Umfangs also eher nicht), sondern klipp und klar zu sagen:

        Der Umfang ergibt sich hauptsächlich daraus, dass er die verschiedenen Möglichkeiten beleuchtet, auf Kontextwechsel zu treffen und diese zu meistern. Das muss man nicht unbedingt alles lesen, aber der Anfang ist wichtig, um ein Verständnis für die Materie zu bekommen. Mir ist es wichtig, dass dieses Verständnis aufgebaut wird und nicht einfach nur ein "So muss man das machen".

        Das klingt gans anders als dein Vorhaben. Was also möchtest du, ein zeitgesteuertes Absenden oder nach Änderungen?

        Falsche Frage. Nicht „Was also möchtest du“, sondern: Was ist sinnvoll, ein zeitgesteuertes Absenden oder nach Änderungen?

        Antwort: letzteres.

        Da ich die Aufgabenstellung nicht kenne, sondern nur das was erzählt wird, tue ich mich schwer, eine Lösung als richtig oder falsch, sinnvoll oder nicht einzuordnen.

        dedlfix.

        1. @@dedlfix

          Hier wäre es wohl angebracht, nicht nur einen Artikel zu verlinken, den der Betreffende dann lesen kann oder auch nicht (in Anbetracht des Umfangs also eher nicht), sondern klipp und klar zu sagen:

          Der Umfang ergibt sich hauptsächlich daraus, dass er die verschiedenen Möglichkeiten beleuchtet, auf Kontextwechsel zu treffen und diese zu meistern.

          Wäre es sinnvoll, den Artikel aufzuteilen? (Offene Frage. Vielleicht auch nicht.)

          Das muss man nicht unbedingt alles lesen, aber der Anfang ist wichtig, um ein Verständnis für die Materie zu bekommen. Mir ist es wichtig, dass dieses Verständnis aufgebaut wird

          Da bin ich im Prinzip bei dir.

          und nicht einfach nur ein "So muss man das machen".

          Deshalb schrub ich ja „Begründung: …“ hinterher.

          Bei sicherheitskritischen Dingen wie diesem ist ein klares „So muss man das machen“ vielleicht doch besser als ein „Ich fang jetzt mal bei den Blumen und Bienen an“.

          🌸🐝

          Falsche Frage. Nicht „Was also möchtest du“, sondern: Was ist sinnvoll, ein zeitgesteuertes Absenden oder nach Änderungen?

          Antwort: letzteres.

          Da ich die Aufgabenstellung nicht kenne, sondern nur das was erzählt wird, tue ich mich schwer, eine Lösung als richtig oder falsch, sinnvoll oder nicht einzuordnen.

          Aufgabenstellung war klar umrissen: „Ich möchte jetzt das submit nicht mehr anklicken müssen sondern sobald ein neues datum in <form> landet soll dieses automatisch an die php funktion geschickt werden.“

          „Meine erste Idee war das Submit in zeitabständen automatisch zu betätigen“ war der Holzweg einer Lösung.

          LLAP 🖖

          --
          “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
          1. Tach!

            Der Umfang ergibt sich hauptsächlich daraus, dass er die verschiedenen Möglichkeiten beleuchtet, auf Kontextwechsel zu treffen und diese zu meistern.

            Wäre es sinnvoll, den Artikel aufzuteilen? (Offene Frage. Vielleicht auch nicht.)

            Der hat schon zwei Seiten. Auf weitere Seiten zu verteilen, macht die insgesamte Sachlage nicht weniger komplex. Durch die Überschriften ist er ja auch bereits aufgeteilt.

            Aber wenn du da konkrete Ideen hast, lass hören.

            dedlfix.

    2. Moin,

      Ich möchte jetzt das submit nicht mehr anklicken müssen sondern sobald ein neues datum in <form> landet soll dieses automatisch an die php funktion geschickt werden.

      Klingt so, als ob du dich in das onchange-Event auf dem Eingabefeld einklinken und dabei das Formular absenden möchtest.

      finde ich nicht. Klingt eher so, als sollte die Javascript-Funktion, die die Daten ins Formular einträgt, auch gleich dessen submit()-Methode aufrufen.

      Schönen Sonntag noch,
       Martin

      --
      Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
      - (frei übersetzt nach Douglas Adams)
      1. Tach!

        Klingt so, als ob du dich in das onchange-Event auf dem Eingabefeld einklinken und dabei das Formular absenden möchtest.

        finde ich nicht. Klingt eher so, als sollte die Javascript-Funktion, die die Daten ins Formular einträgt, auch gleich dessen submit()-Methode aufrufen.

        Ja, im Prinzip. Aber ich gehe mal davon aus, dass der "Javascript-Kalender" eine fertige Komponente ist und es deshalb nicht sonderlich sinnvoll ist, in dessen Code Ergänzungen vorzunehmen.

        dedlfix.

      2. Hallo und guten Morgen,

        Klingt so, als ob du dich in das onchange-Event auf dem Eingabefeld einklinken und dabei das Formular absenden möchtest.

        finde ich nicht. Klingt eher so, als sollte die Javascript-Funktion, die die Daten ins Formular einträgt, auch gleich dessen submit()-Methode aufrufen.

        Ist es nicht sogar so, dass onChange gar nicht feuert, wenn der Wert per JavaScript "hinten rum" in das Feld eingetragen wird? MMn Da muss zumindest noch ein Focuswechsel stattfinden.

        Grüße
        TS

        --
        es wachse der Freifunk
        http://freifunk-oberharz.de
        1. Hallo,

          Klingt eher so, als sollte die Javascript-Funktion, die die Daten ins Formular einträgt, auch gleich dessen submit()-Methode aufrufen.

          Ist es nicht sogar so, dass onChange gar nicht feuert, wenn der Wert per JavaScript "hinten rum" in das Feld eingetragen wird?

          ja, das hatte ich auch diffus im Gedächtnis, und den Verdacht hat Andreas ja auch schon geäußert. Und sehr plausibel begründet.

          MMn Da muss zumindest noch ein Focuswechsel stattfinden.

          Ich glaube, auch das hilft nicht bei einer programmgesteuerten Änderung des Inhalts.

          Ciao,
           Martin

          --
          Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
          - (frei übersetzt nach Douglas Adams)
    3. Hi,

      Ich möchte jetzt das submit nicht mehr anklicken müssen sondern sobald ein neues datum in <form> landet soll dieses automatisch an die php funktion geschickt werden.

      Klingt so, als ob du dich in das onchange-Event auf dem Eingabefeld einklinken und dabei das Formular absenden möchtest.

      wird das change-Event denn ausgelöst, wenn die Änderung per Javascript (Stichwort: Javascript-Kalender) geschieht?

      Meine Erfahrung ist eine andere - kann aber daran liegen, daß die Änderungen bei mir durch ein Greasemonkey-Script durchgeführt werden, nicht durch ein Script, das zur Seite gehört ...

      cu,
      Andreas a/k/a MudGuard

      1. Tach!

        Klingt so, als ob du dich in das onchange-Event auf dem Eingabefeld einklinken und dabei das Formular absenden möchtest.

        wird das change-Event denn ausgelöst, wenn die Änderung per Javascript (Stichwort: Javascript-Kalender) geschieht?

        Leider nicht. Und es scheint auch sonst kein Event zu geben, das bei Zuweisungen gefeuert wird.

        Dann müsste man beim Javascript-Kalender nachschauen, ob der irgendwelche Events generiert oder Callbacks entgegennimmt, die bei Auswahl aufgerufen werden.

        dedlfix.

        1. Hi,

          wird das change-Event denn ausgelöst, wenn die Änderung per Javascript (Stichwort: Javascript-Kalender) geschieht?

          Leider nicht. Und es scheint auch sonst kein Event zu geben, das bei Zuweisungen gefeuert wird.

          könnte aber auch gefährlich sein - im change-Handler wird der Inhalt geändert, was wieder das change-Event auslöst. Im zugehörigen Handler wird der Inhalt geändert, was wieder ... [ad absurdum]

          cu,
          Andreas a/k/a MudGuard

        2. Hallo und guten Morgen,

          wird das change-Event denn ausgelöst, wenn die Änderung per Javascript (Stichwort: Javascript-Kalender) geschieht?

          Leider nicht. Und es scheint auch sonst kein Event zu geben, das bei Zuweisungen gefeuert wird.

          Dann müsste man beim Javascript-Kalender nachschauen, ob der irgendwelche Events generiert oder Callbacks entgegennimmt, die bei Auswahl aufgerufen werden.

          Das haben wir hier schon mal lang und ausführlich diskutiert im Zusammenhang mit verketteten Datalists. Mit der ersten wählt man die ID der zweiten aus, usw.

          Grüße
          TS

          --
          es wachse der Freifunk
          http://freifunk-oberharz.de
          1. Tach!

            Dann müsste man beim Javascript-Kalender nachschauen, ob der irgendwelche Events generiert oder Callbacks entgegennimmt, die bei Auswahl aufgerufen werden.

            Das haben wir hier schon mal lang und ausführlich diskutiert im Zusammenhang mit verketteten Datalists. Mit der ersten wählt man die ID der zweiten aus, usw.

            Bitte was? Welche "die erste"? Ich verstehe nicht, was das mit dem vorliegenden Fall zu tun hat.

            dedlfix.

            1. Hallo und guten Morgen,

              Dann müsste man beim Javascript-Kalender nachschauen, ob der irgendwelche Events generiert oder Callbacks entgegennimmt, die bei Auswahl aufgerufen werden.

              Das haben wir hier schon mal lang und ausführlich diskutiert im Zusammenhang mit verketteten Datalists. Mit der ersten wählt man die ID der zweiten aus, usw.

              Bitte was? Welche "die erste"? Ich verstehe nicht, was das mit dem vorliegenden Fall zu tun hat.

              Bist wohl noch nicht ausgeschlafen? Macht nix :-P.

              Für Dich heute also nochmal in Pfennigen:
              Wir haben das Thema "Welcher Event wird bei einer Änderung eines <input>-Feldinhaltes oder einer <select>-Liste, oder eines anderen Dialogelementes gefeuert, wenn die Änderung durch JavaScript und nicht durch den User stattfindet. Und Ausführlicher haben wir das diskutiert im Zusammenhang mit Datalists.

              Vielleicht findet man den Thread noch im Archiv wieder. Ich kann hier leider nichts finden. Allerdings habe ich so vage im Gedächtnis, dass Gunnar damals noch eine Lösung gefunden hatte...

              Grüße
              TS

              --
              es wachse der Freifunk
              http://freifunk-oberharz.de
              1. Hallo und guten Tag,

                Erster Nachtrag:

                Thread von 2010

                Es gibt aber noch mehr dazu und mMn auch eine Lösung, die für den OP dann relevant sein sollte.

                Grüße
                TS

                --
                es wachse der Freifunk
                http://freifunk-oberharz.de
              2. Tach!

                Dann müsste man beim Javascript-Kalender nachschauen, ob der irgendwelche Events generiert oder Callbacks entgegennimmt, die bei Auswahl aufgerufen werden.

                Das haben wir hier schon mal lang und ausführlich diskutiert im Zusammenhang mit verketteten Datalists. Mit der ersten wählt man die ID der zweiten aus, usw.

                Bitte was? Welche "die erste"? Ich verstehe nicht, was das mit dem vorliegenden Fall zu tun hat.

                Bist wohl noch nicht ausgeschlafen? Macht nix :-P.

                Doch, aber du hast auf den falschen Satz geantwortet. Und das Thema Event im input war auch schon abgehakt, weil keins ausgelöst wird. Die einzige Change besteht wohl grad noch darin, dass der Kalender ein Event mitbringt. Und der hat dann kein Problem mit sich aufschaukelnden Change-Events. (Sollte jedenfalls nicht.)

                dedlfix.

      2. Hallo und guten Morgen,

        wird das change-Event denn ausgelöst, wenn die Änderung per Javascript (Stichwort: Javascript-Kalender) geschieht?

        Meine Erfahrung ist eine andere - kann aber daran liegen, daß die Änderungen bei mir durch ein Greasemonkey-Script durchgeführt werden, nicht durch ein Script, das zur Seite gehört ...

        Du warst schneller, aber ich hatte es noch nicht gelesen. Das war nämlich auch meine Erfahrung...
        Posting

        Grüße
        TS

        --
        es wachse der Freifunk
        http://freifunk-oberharz.de
        1. ein bischen mehr habe ich schon verstanden. mir war nicht klar das ein Eintrag von einem Program nicht das gleiche ist wie eine händische Eingabe.

          Wie erzeuge ich den einen "change event " ? in meinem kalender script ? und wie werte ich den nachher im <form> aus

          gruß meinolf

          1. Tach!

            Wie erzeuge ich den einen "change event " ? in meinem kalender script ?

            Da musst du mal in die Dokumentation deines Kalender-Scripts schauen.

            und wie werte ich den nachher im <form> aus

            Du sendest es nur ab. Mit seiner submit()-Methode.

            dedlfix.

          2. Hallo und guten Morgen,

            Wie erzeuge ich den einen "change event " ? in meinem kalender script ? und wie werte ich den nachher im <form> aus

            Das wurde Dir hier irgendwo im Thread (ich glaube, Martin war's) schon beantwortet. Die Handlung (Event), die für die Auswahl im Kalender sorgt, muss auch für die Übertragung der ausgewählten Daten ins Formular und für das Absenden sorgen. Das könnte ein "Return" im Feld mit dem Focus sein, oder aber ein Mausklick in das Feld.

            Eine andere Möglichkeit haben wir hier bisher noch nicht wiederentdeckt. Wie Du schon richtig erkannt hast, ist eine Benutzeraktion auf jeden Fall notwendig, um einen passenden Trigger auszulösen.

            Du müsstest Dir also eine kleine Funktion erstellen, die in der speziellen Kalendersicht immer ausgelöst wird, wenn die Auswahl stattgefunden hat.

            Grüße
            TS

            --
            es wachse der Freifunk
            http://freifunk-oberharz.de