[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • YForm - Select Field mit dynamischen Inhalten validiert nicht korrekt
Seite 1 von 1

YForm - Select Field mit dynamischen Inhalten validiert nicht korrekt

Verfasst: 4. Feb 2018, 19:52
von oliwan
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:

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

Verfasst: 4. Feb 2018, 21:11
von Marshall
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

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

Verfasst: 5. Feb 2018, 08:22
von oliwan
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