Hallo, lieber Forumbenutzer. Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen Möglichkeiten der Kommunikation ist das Forum ein wenig eingeschlafen und weniger Nutzer benutzen das Forum aktiv (trotzdem lohnt es sich evtl. hier nach Lösungen zu suchen oder seine Frage zu stellen).

Wir empfehlen, für deine Fragen/Probleme aktuell (zusätzlich) Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: http://redaxo.org/slack/
Benutzeravatar
robcs
Beiträge: 7
Registriert: 19. Dez 2008, 12:45

XForm mehrere Formulare auf einer Seite

10. Sep 2013, 12:20

Es gab hierzu bereits einige Posts und ich habe sie mir alle angeschaut, leider wurde bei keinem eine Lösung gepostet.

Das Problem:
setzt man mehrere XForm Formulare auf einer Seite ein, dann werden beim Abschicken deren actions nicht ausgeführt, auch die validates scheinen nicht zu funktionieren, es erscheinen dazu keine Warnmeldungen mehr.

Code: Alles auswählen

objparams|form_id|form_xyz
objparams|form_name|xyz
... habe ich selbstverständlich bei beiden Formularen individuell gesetzt.

Das Problem ist eigentlich auch nicht nur die Anzahl die Formulare, sondern die "objparams", wenn man "form_name" abändert, dann funktioniert auch ein einzelnes Formular nicht mehr korrekt.

Hat jemand eine Lösung für dieses Problem?

Grüße
Robert

PS: Redaxo 4.4.1 Community Edition mit XForm 2.9.3

Benutzeravatar
robcs
Beiträge: 7
Registriert: 19. Dez 2008, 12:45

Re: XForm mehrere Formulare auf einer Seite

10. Sep 2013, 15:41

Lösung gefunden ...

diese beiden "Blöcke" muss man vertauschen, in der "class.rex_xform.inc.php",
da "getFieldValue" im ersten Teil bereits die ausgelesenen objparams benötigt, sonst ist der objparam von "form_name" zu diesem Zeitpunkt immer "formular" und "send" immer 0 (wenn man einen individuellen "form_name" verwendet).

Code: Alles auswählen

// *************************************************** ABGESCHICKT PARAMENTER
    $this->objparams["send"] = 0;

    if ($this->getFieldValue("send",'',"send") == "1")
    {
      $this->objparams["send"] = 1;
    }


    // *************************************************** VALUE OBJEKTE
    $rows = count($this->objparams["form_elements"]);
    for ($i = 0; $i < $rows; $i++)
    {
      $element = $this->objparams["form_elements"][$i];
      $ValueObjects = $this->_setValueElement($ValueObjects, $element, $i);
      $rows = count($this->objparams["form_elements"]); // if elements have changed -> new rowcount
    }
so sollte es sein:

Code: Alles auswählen

// *************************************************** ABGESCHICKT PARAMENTER 1
    $this->objparams["send"] = 0;

// *************************************************** VALUE OBJEKTE
    $rows = count($this->objparams["form_elements"]);
    for ($i = 0; $i < $rows; $i++)
    {
      $element = $this->objparams["form_elements"][$i];
      $ValueObjects = $this->_setValueElement($ValueObjects, $element, $i);
      $rows = count($this->objparams["form_elements"]); // if elements have changed -> new rowcount
    }

 // *************************************************** ABGESCHICKT PARAMENTER 2
    if ($this->getFieldValue("send",'',"send") == "1")
    {
      $this->objparams["send"] = 1;
    }

Hirbod
Beiträge: 435
Registriert: 15. Jan 2008, 14:46

Re: XForm mehrere Formulare auf einer Seite

21. Sep 2013, 19:17

Hi,

dafür gab es einen eleganteren Quick and Dirty Patch :)

https://github.com/dergel/redaxo4_xform/pull/24

Eigentlich wurde dieser Bug bereits gemerged, ist aber irgendwie wieder rausgeflogen.

Zurück zu „Sonstiges“