Felix Riesterer: Eingabefeld input automatisch speichern

Beitrag lesen

Lieber Georg,

Also PHP 😀😀 geht,

prima!

Dann benötigst Du zwei Wege:

  1. Daten werden als komplettes Formular versandt.
  2. Ein Datum (Einzahl von Daten) wird via JavaScript zum Speichern übertragen

Es stellt sich nun die Frage, wie das in Deiner Webapplikation genau aussieht. Wird beim Seitenaufruf genau ein Datensatz angesteuert (z.B. weil in der URL etwas spezifisches dazu steht), wenn die Seite mit dem Excel-artigen Formular aufgerufen wird, der dann beim Speichern mit den Daten gefüllt wird? Dann wären die zwei Wege relativ schmerzfrei umzusetzen.

Wenn ein Seitenaufruf jedes Mal einen neuen Datensatz erzeugt, dann haben wir mit dem zweiten Weg ein Problem, da ein Speichern-Aufruf via JavaScript so ähnlich wie ein neuer Seitenaufruf ist.

Verwendest Du eine Session? Damit kann man den aktuell zu bearbeitenden Datensatz in der Session festlegen, was dazu führt, dass egal ob Formular-ganz-speichern oder diesen-Einzelwert-speichern immer denselben Datensatz betrifft.

und mit Javascript, 🤔 es muss ja jeder mal anfangen.

Kein Problem! Wenn Du definiert hast, wie der POST-Request aussehen muss, den JavaScript für das Speichern eines Einzelwerts erzeugen soll, kannst Du die Eingabefelder mit entsprechenden Eventlistenern ausstatten, die in dem Moment feuern, in dem der Wert eingetragen wurde. Da hatten wir doch neulich eine Diskussion, welches Event sich da am besten eignet.

Also möchtest Du erste Schritte in JavaScript machen. Das sollte Dich in etwa zu diesem Code hier führen:

<!doctype html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <title>online-Excel</title>
    <script>
document.addEventListener("DOMContentReady", function () {

// Mein JavaScript-Programm
console.log("Hallo Welt!");

});
    </script>
  </head>
  <body>
    ...
  </body>
</html>

Wenn Du das JavaScript in eine eigene Datei ausgliedern willst, dann könnte es noch übersichtlicher zu schreiben sein.

Du willst alle Eingabefelder vom Typ <input type="number"> mit einem Eventlistener ausstatten, der beim input-Event feuert (siehe oben verlinkte Diskussion dazu). Die Funktion, die beim Ereignis ausgeführt wird, muss nun einen POST-Request absenden, den Dein PHP-Script versteht.

Liebe Grüße

Felix Riesterer