Ergebnis 1 bis 21 von 21

Thema: Wie Formulare mit PHP auslesen? JavaScript möglich?

  1. #1
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard Wie Formulare mit PHP auslesen? JavaScript möglich?

    Hallo zusammen,

    nachdem ich seit ca. 1 Jahr eine Vereinshomepage mit Contao erstellt habe und betreibe, möchte ich nun ein Formular zur Verfügung stellen und die Eingaben mit PHP auslesen und verarbeiten. Kann mir jemand ein Tutorial dafür empfehlen? Später möchte ich auch Formulare programmatisch füllen können. Bei selbstgebastelten Websites hatte ich das früher mit JavaScript und Ajax gemacht. Googeln nach einen How-To für Contao hat mir aber nicht viel gebracht.
    PHP-mäßig bin ich Anfänger, beherrsche aber diverse andere Programmiersprachen. Muss man PHP verwenden? Oder geht auch JavaScript?

    Grüße und Danke im Voraus.

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    In Contao gibt es einen Formulargenerator. Beschreibe mal deine konkreten Anforderungen.

  3. #3
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard

    Ich sehe gerade, dass meine Ausführungen etwas missverständlich waren. Ich möchte das nicht auf der Vereinshomepage machen, sondern auf einer anderen neuen Seite.

    Ich möchte ein Formular mit Eingabe- und Ausgabefeldern anzeigen, teilweise kombinierte Ein-/Ausgabefelder. Konkret sollen Werte über die Tastatur eingegeben werden, die dann in einer DB abgespeichert, aber auch per Message-Dienst (MQTT, JMS, möglicherweise http, o.ä.) an andere Empfänger versendet werden. Die genannten Empfänger können aber auch ihrerseits neue Werte senden, die dann in denselben Feldern und auch anderen Feldern angezeigt werden sollen. Ich habe also reine Eingabefelder, reine Ausgabefelder für Werte von außerhalb, und kombinierte Felder. Für die Logik drunter - abspeichern, versenden, empfangen, berechnen - möchte ich gerne Java verwenden, da ich dies beherrsche. Für das Befüllen/Auslesen der Felder wäre mir JavaScript recht, was aber wohl nicht geht, da Contao nur PHP kann (korrekt?). Nach meiner Vorstellung sollte Contao per http mit dem Java-Backend sprechen. Reicht das als Info?

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Naja, du könntest wie gesagt ein Formular mit dem Formulargenerator erzeugen und dann die Eingaben dort entweder nur per AJAX versenden - oder per Hook dann an dein eigenes Backend.

  5. #5
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.614
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Eine Idee wäre auch über das Notification-Center zu gehen und dafür ein eigenes Gateway zu schreiben.

  6. #6
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard

    OK, erstmal danke.
    Gibt es ein gutes Tutorial zum Notification Center?

    Wenn ich Hooks verwende, wird ja eine Methode einer Klasse aufgerufen (kenne ich natürlich von Java her), sollte ich hinbekommen.
    Aber wie schreibe ich einen Wert programmatisch in ein Formular zurück? Für einen Hinweis wäre ich dankbar.

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von Hardworker Beitrag anzeigen
    Aber wie schreibe ich einen Wert programmatisch in ein Formular zurück? Für einen Hinweis wäre ich dankbar.
    Hier verstehe ich noch nicht genau was du meinst. Meinst du einfach Default Values für Formularfelder?

  8. #8
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard

    Von einem anderen Rechner mit Temperatursensor kommt ein Wert an einen Server-Prozess (=Java-Programm, das auf dem selben Rechner läuft wie Contao). Der Server-Prozess soll den Wert dann an ein Contao-PHP-Script senden, das den Wert dann in ein Formular-Feld einträgt.

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Ich verstehe es immer noch nicht . Warum in ein Formular Feld? Warum überhaupt in eine Contao Installation? Sollte es nicht eher so sein, dass der Client sich den Wert vom Server holt?

  10. #10
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard

    Du meinst mit Client das PHP-Script in Contao? Der Client weiß nicht, wann sich der Wert geändert hat. Dann müsste er den Server pollen oder per Ajax abfragen. Ich wollte, dass der Server den Wert an den Client sendet. Ist aber auch egal, wie der Wert dahin kommt. Meine Frage ist halt: Wenn das Script dann den Wert vom Server hat, wie kommt der vom Script ins Formularfeld?

    Möglicherweise bin ich aber mit meinen Vorstellungen, wie das in Contao oder generell in einem CMS funktioniert auf dem völlig falschen Gleis.

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von Hardworker Beitrag anzeigen
    Du meinst mit Client das PHP-Script in Contao?
    Nein, der Browser.


    Zitat Zitat von Hardworker Beitrag anzeigen
    Du meinst mit Client das PHP-Script in Contao? Der Client weiß nicht, wann sich der Wert geändert hat. Dann müsste er den Server pollen oder per Ajax abfragen. Ich wollte, dass der Server den Wert an den Client sendet. Ist aber auch egal, wie der Wert dahin kommt. Meine Frage ist halt: Wenn das Script dann den Wert vom Server hat, wie kommt der vom Script ins Formularfeld?
    Naja, der Server kann den Wert natürlich an eine Schnittstelle senden, die du in Contao eingerichtet hast, damit das in irgendeiner Tabelle gespeichert wird. Nur was machst du dann damit genau?

  12. #12
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard

    Ich habe mir vorgestellt, dass das PHP-Script die Daten empfängt, den Namen des Formularfelds herausfindet und den Wert da reinschreibt.

  13. #13
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.614
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du könntest Dir einen InsertTag erstellen, den Du als Standardwert im Formular einträgst.
    Deine replaceInsertTag-Routine besorgt dann den entsprechenden Wert und gibt ihn vor dem Aufruf an das Formular.

  14. #14
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von Hardworker Beitrag anzeigen
    Ich habe mir vorgestellt, dass das PHP-Script die Daten empfängt, den Namen des Formularfelds herausfindet und den Wert da reinschreibt.
    In wie fern "reinschreibt"? Ein "Formularfeld" ist HTML. HTML wird von PHP erzeugt, wenn ein Client (bspw. einen Browser) einen Request auf den Webserver macht.

  15. #15
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard

    Vermutlich liegt mein Denkfehler in meinen früheren JavaScript-Erfahrungen begründet. JavScript läuft ja im Browser, PHP aber auf dem Server. Das ist ein völlig anderes Prinzip.

    Aber trotzdem muss doch möglich sein, dass ein Formularfeld asynchron updated werden kann, ohne dass am Browser eine Benutzeraktion durchgeführt wird.

  16. #16
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von Hardworker Beitrag anzeigen
    Aber trotzdem muss doch möglich sein, dass ein Formularfeld asynchron updated werden kann, ohne dass am Browser eine Benutzeraktion durchgeführt wird.
    Ja, mit JavaScript . Entweder über polling - oder modern über "service worker" (aus den "Progressive Web Apps"). Siehe zB https://medium.com/commencis/web-pus...s-cf6ec8005a6c

  17. #17
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard

    OK, danke. Dann werde ich das mal versuchen. 1. Seite anlegen, 2. Hook einrichten, um Änderungen durch den Benutzer bearbeiten zu können, 3. JavaScript für automatische Abfragen beim Server und Änderung von Feldern. Ich bezweifle zwar, das mir das gelingen wird, aber ich werde mal 5 Abende investieren (wenn's nicht klappt schreibe ich eben wieder Pure-HTML mit JavaScript).

    By the way: Contao wurde mir empfohlen und dankenswerter ein Template eingerichtet, auf dem ich arbeite. Ich halte es aber für unglaublich kompliziert (wenn man Tutorials anschaut), wenn man etwas machen möchte, was im Standard nicht enthalten ist und habe sowas deshalb noch nicht gewagt. Sind andere CMS möglicherweise einfacher?

  18. #18
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Warum benötigst du überhaupt ein CMS?

  19. #19
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard

    Weiß ich nicht, wurde mir halt von jemandem, der das auch benutzt, so eingerichtet.
    Die Vereinshomepage läuft jetzt halt damit und umsteigen ist sehr aufwändig. Auch deshalb möchte ich halt etwas mehr Contao-Wissen aufbauen, damit ich dort auch Dinge tun kann, die nicht standardmäßig dabei sind.
    Möglicherweise wäre es aber schon besser, auf etwas Einfacheres umzusteigen und damit dann auch umgehen zu können. Mit so etwas komplexem nur sporadisch zu arbeiten hat möglicherweise nicht wirklich Sinn. Hat jemand eine Empfehlung für etwas Einfacheres?

  20. #20
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Achso, es geht um eine ganze Website. Und auf dieser Website möchtest du eine Temperatur anzeigen lassen? Wozu das Formularfeld?

  21. #21
    Contao-Nutzer
    Registriert seit
    24.11.2017.
    Beiträge
    61

    Standard

    Ich brauche ein Feld, das nur einen Wert anzeigen kann, eins in das der Benutzer eingeben kann und eins, das beides kann.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •