Ergebnis 1 bis 5 von 5

Thema: Formulardaten aktualisieren

  1. #1
    Contao-Nutzer
    Registriert seit
    15.09.2016.
    Beiträge
    99

    Standard Formulardaten aktualisieren

    hi,
    hab ein formular ersetllt, um neue einträge zu erstellen. die daten werden in einer eigenen tabelle gespeichert.
    um nachträglich daran was zu ändern, habe ich eine seite, die mit einer id aufgerufen wird. also aus der liste der durchs formular erstellten einträge ein link zur edit-seite mit einem url parameter ?id=xxx
    auf der edit seite wird dasselbe formular aufgerufen und per hook loadformfield befülle ich die felder des formular mit den werten aus der db zu der angegebenen id.
    hab mal etwas mit den anderen form-hooks gespielt, aber keine saubere lösung gefunden, damit die änderungen übernommen werden. es wird einfach ein neuer datensatz abgelegt.
    das einzige, was mir jetzt noch einfiel:
    mit processFormData den neuen eintrag löschen und den alten anhand der id aktualisieren.

    da muss es einen besseren weg geben. jemand ne idee?

    mit prepareFormData den $submittedData ein feld mit id => xxx übergeben, in der hoffnung, dass dann geupdatet wird ...nope!

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

    Standard

    Wenn du im Formulargenerator das Speichern in eine Tabelle aktiviert hast, dann wird immer ein neuer Datensatz angelegt, das kannst du nicht beeinflussen. Du musst hier stattdessen in einem processFormData Hook alles selbst erledigen und diese Funktionalität des Formulars deaktivieren.

    Eine andere Herangehensweise an diese Thematik wäre, dass du dir die Zieltabelle als DCA anlegst (falls nicht schon passiert) und dir das Formular über https://github.com/codefog/contao-ha...n/docs/Form.md erzeugst. Damit kannst du auch das Model des DCAs binden lassen.
    » sponsor me via GitHub or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    15.09.2016.
    Beiträge
    99

    Standard

    ok, danke, mach es dann "händisch".

  4. #4
    Contao-Urgestein
    Registriert seit
    24.02.2021.
    Beiträge
    1.792
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ist keine große Sache es über Haste zu machen, schau doch mal hier:
    https://github.com/codefog/contao-ha.../Form.php#L571

    ungetestet als Beispiel hier mal mit mit DCA und Callback für fields, welche keinen InputType haben (ist noch aus etwas altem extrahiert )
    PHP-Code:
    $form = new Form($deineId'POST'fn($objHaste) => $request->get('FORM_SUBMIT') === $deineId);
    $form->addFieldsFromDca($strDca, [$form'skipFieldsWithoutInputType']); 
    Rest machst du dir.

    Du warst schon so nah dran, warum jedes Mal 5 Minuten händisch machen, wenn du es in paar Stunden programmieren kannst

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

    Standard

    Und wenn du das Model je nach Query Parameter lädst, bindest du es wie gesagt einfach und das Aktualisieren ist auch schon für dich erledigt.
    » sponsor me via GitHub or Revolut

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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