Hallo, lieber Forum Benutzer. Wir haben in letzter Zeit festgestellt, dass die Kommunikation via https://slack.com/ 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 bei Fragen/Problemen aktuell die Frage (zusätzlich) im Slack zu stellen. Dort sind viele kompetente REDAXO Benutzer aktiv und beantworten gerne (Anfänger)Fragen.

Selbst einladen kannst Du dich hier: http://redaxo.org/slack/

Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
oliwan
Beiträge: 67
Registriert: 21. Jan 2010, 22:35
Wohnort: Hamm

YForm - Select Field mit dynamischen Inhalten validiert nicht korrekt

4. Feb 2018, 19:52

Hallo an Alle!

Ich benötige ein Formular, in dem ich die Optionen eines Selection Field dynamisch ändern will

Folgendermaßen bin ich bisher vorgegangen:

1) YForm angelegt mit nem "leeren" Selection field außer dem Basiseintrag- Bitte wählen -> siehe:

Code: Alles auswählen

$yform->setValueField('select', array('Stueck','Stück','Bitte auswählen=ba','','ba'));
$yform->setValidateField('compare', array("Stück","ba","==", "Bitte wählen Sie ein Stück aus!"));
2) per Javascript lade ich die aktuelle gültigen Inhalte aus der Datenbank und ersetze die Optionen des Feldes:

Code: Alles auswählen

echo 'var options = [';
echo '{text: "Bitte auswählen", value: "ba"},';
for ($schleife=0;$schleife<sizeof($titel);$schleife++){
    echo '{text: "'.$titel[$schleife].'", value: '.$schleife+1.'}';
    if ($schleife<sizeof($titel)-1){echo ",";}
}
echo '];';

echo '$("#yform-table-rex_order-field-4").replaceOptions(options);';

Code: Alles auswählen

  function($, window) {
  $.fn.replaceOptions = function(options) {
    var self, $option;
    this.empty();
    self = this;
    $.each(options, function(index, option) {
      $option = $("<option></option>")
        .attr("value", option.value)
        .text(option.text);
      self.append($option);
    });
  };
})(jQuery, window);

Im Html Frontend funktioniert das wie erwartet - ABER, wenn ich nun auf Absenden klicke, bekomme ich, trotz Auswahl, immer den Hinweis, dass ich
noch ein Stück auswählen muss?!

Evtl. muss ich vom YForm noch was überschreiben, damit es im Backend die neuen Inhalte des Select Fields kennt?

Hinweis: ich habe per Javascript geprüft, ob das Selection Field auch ne Auwahl hat - hat es - es wird mir der korrekte Value zurück gegeben - nur die Backendprüfung vom YForm bekommt das scheinbar nicht mit :roll:

Evtl. kann mir jemand sagen, was ich tun muss, damit ich ein YForm mit dynamischen Inhalten inkl. Valierung hinbekomme - THX in dolby
Oliwan

Hierzu noch ein Nachtrag: Wenn ich die Validierung ausschalte und das Form absende, bekomme ich trozt ausgewählten Eintrag ein ba als Inhhalt übertragen ;-( - Wenn von euch niememand ne Idee hat, wie ich die Inhalte auch auf Seiten von YForm bekannt machen kann, muss ich wohl ein Form klassisch in PHP als Modul bauen - also ohne YForm :cry:
may the source be with you

Marshall
Beiträge: 70
Registriert: 8. Dez 2008, 22:05

Re: YForm - Select Field mit dynamischen Inhalten validiert nicht korrekt

4. Feb 2018, 21:11

Hi Oliwan,
das hilft Dir jetzt auch nicht weiter, aber das Problem ist, dass in yform/lib/yform/value/select.php bei enterObject geprüft wird, ob der Wert überhaupt in den gegebenen Optionen existiert (z.B. Zeile 30 bzw. 45 und 61). Da die Werte aber dynamisch daherkommen, "weiß" das Select-Object zu dem Zeitpunkt nichts davon und bügelt dir den Wert einfach raus. Das macht ja ansich schon Sinn, nur in dem Fall ist es etwas ungünstig.

Aber da du ja ohnehin schon mit JavaScript an die Sache gehst, kannst Du den jeweils aktuellen Wert des Selects per JavaScript onChange auch einfach in z.B. ein Hiddenfeld schreiben und diesen Wert weiterverarbeiten?

Viele Grüße
Marshall

oliwan
Beiträge: 67
Registriert: 21. Jan 2010, 22:35
Wohnort: Hamm

Re: YForm - Select Field mit dynamischen Inhalten validiert nicht korrekt

5. Feb 2018, 08:22

Hallo Marshall!

Ja, danke für deine Erläuterung! So hab ich zumindest ne klare Vorstellung, wie ich nun weiter machen kann (oder eben auch nicht ;-))

Beste Wünsche

Oliwan
may the source be with you

Zurück zu „Sonstiges“