Closed alxndr-w closed 1 year ago
Die Frage kommt auch immer wieder in Slack auf.
Hier ein serverseitiger Ansatz:
https://github.com/yakamara/redaxo_yform_docs/issues/125
Umsetzungsbeispiel, das via get-Parameter einzelne Schritte abfängt: Noch aufzuhübschen...
Zur Dokumentation des archivierten Repos:
<?php // Vars $fortschritt = rex_get('fortschritt','int',0); $data_id = session_id(); $url = rex_getUrl($this->getArticleId()); if (!isset($_SESSION)){ session_start(); } else { $query = Projektfragebogen::query(); $query->where('session_id', session_id()); $fragebogenwerte = $query->findOne(); } // dump($fragebogenwerte); // dump($data_id); // dump($fortschritt); $table = 'rex_projektfragebogen'; $data_id = session_id(); $yform = new rex_yform(); // $yform->setDebug(TRUE); $yform->setObjectparams('form_name', 'projektfragebogen'); $yform->setObjectparams('form_ytemplate', 'bootstrap'); $yform->setObjectparams('form_showformafterupdate', 1); $yform->setObjectparams('real_field_names', true); if($fragebogenwerte) { $yform->setActionField('db', [$table, 'session_id="'.$data_id.'"']); $yform->setObjectparams('getdata', TRUE); $yform->setObjectparams('main_where', 'session_id="'.$data_id.'"'); $yform->setObjectparams('main_table', $table); } else { $yform->setActionField('db', array($table)); $yform->setObjectparams('getdata', false); } $yform->setValueField('hidden', array("session_id", session_id())); /* * * Schritt 0 * */ if ($fortschritt == '0' ) { $yform->setValueField('text', array('firmierung','Firmierung','','','{"placeholder":"Mein Placeholder"}')); $yform->setValidateField('empty', array("firmierung","Bitte geben Sie Ihren Firmenanamen und die Gesellschaftsform an.")); $yform->setObjectparams('submit_btn_label','weiter'); $yform->setObjectparams("form_action", $url.'?fortschritt=0'); $yform->setActionField('redirect', array($url.'?fortschritt=1')); /* * * Schritt 1 * */ } else if ($fortschritt == '1' ) { $yform->setValueField('text', array('plz','PLZ')); $yform->setValidateField('empty', array("plz","PLZ")); $yform->setObjectparams('submit_btn_label','weiter'); $yform->setObjectparams("form_action", $url.'?fortschritt=1'); $yform->setActionField('redirect', array($url.'?fortschritt=2')); /* * * Schritt 1 * */ } else if ($fortschritt == '2' ) { $yform->setValueField('text', array('ort','Ort')); /* weiterleiten auf DANKE Seite */ // $yform->setActionField('redirect', array("3")); $yform->setObjectparams("form_action", $url.'?fortschritt=2'); $yform->setActionField('redirect', array(3)); $yform->setObjectparams('submit_btn_label','Senden'); } echo $yform->getForm();
Die Frage kommt auch immer wieder in Slack auf.
Hier ein serverseitiger Ansatz:
https://github.com/yakamara/redaxo_yform_docs/issues/125
Umsetzungsbeispiel, das via get-Parameter einzelne Schritte abfängt: Noch aufzuhübschen...
Zur Dokumentation des archivierten Repos: