1

Thema: Generator Form: Radio Buttons?

Hi,

ich fummel' hier jetzt schon eine Weile herum und hab' es bisher leider nicht geschafft, zwei Radiobuttons in meine Generator Form einzubauen. Ich habe die Felder mit dem Typ "radio" eingerichtet und rufe sie auf mit

<label for="abholung">{$form.abholung.label} {$form.abholung.html}</label><br />
    <label for="versand">{$form.versand.label} {$form.versand.html}</label><br />

Da kommt aber nix. sad Ich habe auch mal etwas mit Name und Wert der Felder herumexperimentiert, leider mit bisher keinem Ergebnis.

Hat vielleicht jemand einen heißen Tip für mich?
Vielen Dank schon mal!
~b~

Re: Generator Form: Radio Buttons?

Moin Bine,

Bine schrieb:

Hi,

ich fummel' hier jetzt schon eine Weile herum und hab' es bisher leider nicht geschafft, zwei Radiobuttons in meine Generator Form einzubauen. Ich habe die Felder mit dem Typ "radio" eingerichtet [...] Hat vielleicht jemand einen heißen Tip für mich?

Ja, hab ich ;-) Der Einsatz von Radio Buttons ist leider (wie einiges andere auch) noch nicht ausführlich (in diesem Fall: gar nicht) dokumentiert.

1. Lege ein Formularfeld an, dem du im Feld "Wert" dann die Werte in folgender Form angibst (Werte mit Semikolon trennen):

1;2;3

2. In der Seitenvorlage für das Formular liest du die Radiobuttons so aus:

{foreach from=$form.name_des_formularfeldes item=_radio}
{$_radio.html}
{/foreach}

Dadurch, das Radio buttons ja immer ein entweder/oder Szenario beschreiben, wird (muss) hier anders als bei den sonstigen Felder ausgelesen werden. Die Radiobuttons werden in einem Rutsch in der Schleife inklusive Label ausgelesen.

gruss
Olaf

P.S. Falls es in der generierten Ausgabe mit den 'value' Attributangaben Probleme gibt, melde dich bitte nochmal. Wir haben vor ein paar Tagen erst einen Bug hierzu gefunden, den wir gerade am evaluieren sind. Ein Short Fix gibt es aber schon.

3

Re: Generator Form: Radio Buttons?

Sehr cool, danke! wink

Die Radios werden jetzt angezeigt, auch mit den Werten gibt's soweit keine Probleme. Ich kämpfe nur noch etwas mit dem Styling des Formulars. Ich hätte gern unterschiedlich breite Textfelder (z.B. eins für maximal zweistellige Zahlen), aber wenn ich richtig sehe, haben die alle die Klasse .ftextfield. Muß ich noch mal ein bißchen basteln.

Ach ja: Ich habe die Radios als Required definiert, die entsprechende Fehlermeldung wird auch oben ausgegeben, nur das hübsche (ggf. rote) Sternchen fehlt dort. Wobei das ja komplizierter wäre als bei den Textfeldern, denn es gibt ja mehrere Label, die dann zu markieren wären...hmm...

Uff, ich frag' mich langsam, was mich geritten hat, als ich zugestimmt hab, "mal eben" drei Formulare zu bauen... wink

LG
~b~

Re: Generator Form: Radio Buttons?

Moin Bine.

Bine schrieb:

Die Radios werden jetzt angezeigt, auch mit den Werten gibt's soweit keine Probleme.

Kannst du mir sagen, mit welcher Welcompose Version du arbeitest?

Bine schrieb:

Ich kämpfe nur noch etwas mit dem Styling des Formulars. Ich hätte gern unterschiedlich breite Textfelder (z.B. eins für maximal zweistellige Zahlen), aber wenn ich richtig sehe, haben die alle die Klasse .ftextfield.

Im Moment ist es noch so, das du das über zus. HTML + CSS lösen musst. Beispielsweise so:

<label for="generator_form_feldname">{$form.feldname.label}</label><span class="feldnameLesserWidth">{$form.feldname.html}</span>

Im CSS dann der Felddeklaration die entsprechende Kaskadierung hinzufügen:

input.ftextfield {
width: 300px;
}
.feldnameLesserWidth input.ftextfield {
width: 50px;
}

Im Moment werden - um Stylingklassen direkt anzubieten - für die entsprechenden Feldtypen Klassen an den Formelemente als Standard gesetzt. Das soll in einer der nächsten Versionen ersetzt werden durch ein alternatives Definieren beim Anlegen eines Generated Form Feldes.

Übersicht über die Standardklassen an den Formfeldtypen:
text = .ftextfield
select = .fselect
textarea = .ftextarea
checkbox = .fcheckbox
radio = .fradio
file = .ffile
submit = .fsubmit
reset = .freset

Bine schrieb:

Ach ja: Ich habe die Radios als Required definiert, die entsprechende Fehlermeldung wird auch oben ausgegeben, nur das hübsche (ggf. rote) Sternchen fehlt dort.

Das ist ein Bug. Eigentlich sollte die Software das machen. Tut sie aber nicht, wie ich gerade selber feststellen muss sad Danke für den Hinweis.

gruss
Olaf

5

Re: Generator Form: Radio Buttons?

Hi Olaf.

Olaf Gleba schrieb:

Kannst du mir sagen, mit welcher Welcompose Version du arbeitest?

Jepp, das Projekt ist schon was länger online und läuft noch unter der 0.8.0. Ich war bisher ehrlich gesagt zu faul, das Update zu machen... big_smile

Olaf Gleba schrieb:

Im Moment ist es noch so, das du das über zus. HTML + CSS lösen musst.

Auch hier "jepp" - ich hatte gestern abend meinen vorherigen Beitrag noch editiert, aber die Edith wurde irgendwie gefressen (vielleicht hab' ich auch aus Versehen auf Vorschau statt Absenden geklickt). Auf jeden Fall hab ich um den Bereich, wo die Textfelder schmaler sein sollen, einfach ein DIV gesetzt und die Klasse darin noch mal definiert. Hat auch geklappt.

Olaf Gleba schrieb:

Das ist ein Bug. Eigentlich sollte die Software das machen. Tut sie aber nicht, wie ich gerade selber feststellen muss Danke für den Hinweis.

Gerne. smile Ist aber für mich persönlich jetzt gerade nicht so schlimm, der "Meckertext" wird ja korrekt ausgegeben.

LG
~b~

6

Re: Generator Form: Radio Buttons?

Hi Olaf,

das Thema scheint leider doch noch nicht zu Ende zu sein. Ich habe jetzt zwei Radio-Arrays in meinem Formular, einmal für Anrede, einmal für Versandart. In der Vorlage für die Mail lese ich die Werte entsprechend mit {$form_data.anrede} bzw. {$form_data.versand} aus - ist das korrekt?

Ich hab' inzwischen nämlich ein Dutzend Testmails rausgehauen, und der Witz ist: Manchmal wird der ausgewählte Wert angezeigt, manchmal nicht - und das ohne, daß ich zwischendurch an der Vorlage drangewesen wäre.

Das verwirrt mich jetzt... hmm Ist das der Bug, von dem Du sprachst?

LG
~b~

Re: Generator Form: Radio Buttons?

Moin Bine.

Bine schrieb:

Das verwirrt mich jetzt... hmm Ist das der Bug, von dem Du sprachst?

Das hört sich ganz so an. Werte aus Formularen verschwinden nicht kurzfristig um dann wieder da zu sein. Entweder das ein oder andere wink

Ob es der von mir genannte Bug ist, kannst du selber auch überprüfen, in dem du den Quelltext der Ausgabeseite kontrollierst. Du müsstest (obwohl du das zu einem früheren Zeitpunkt verneint hast) bei den Radios etwas in der Art sehen (schau dir die Werte des Attributes 'Value' an):

<input id="xxx" class="fradio" name="xxx" value="1" type="radio" /><label for="xxx">1</label>
<input id="xxx" class="fradio" name="xxx" value="2" type="radio" /><label for="xxx">1</label>
<input id="xxx" class="fradio" name="xxx" value="1;2" type="radio" /><label for="xxx">1</label>

Letztes Radio-Element setzt also falsche Werte. Wenn du diesen Radio im Formular dann auswählst, bleibt das Feld in der Mail leer. Abhängig von den gesetzen Radio buttons, kann es also sein, das mal ein feld leer, mal gefüllt ist.

Um das zu beheben, öffne in der Installation mit einem Texeditor folgende Datei: /core/display_classes/generatorformindex.class.php

Hier gilt es zwei kleinere Sachen zu ändern:

In Zeile 275-279 (gilt f. Version 0.8.0) steht:

if (!$FORM->isSubmitted()) {
    $element->setValue($_value);
}

$i++;

Ersetze den Code durch:

if (!$FORM->isSubmitted()) {
    $element->setValue($_value);
}
$i++;
$imply_radio_elements = 1;

In Zeile 294-297 (gilt f. Version 0.8.0) steht:

// set value
if (!$FORM->isSubmitted()) {
    $element->setValue($_field['value']);
}

Ersetze den Code durch:

// set value
if (!$FORM->isSubmitted()) {
    // prevent radio elements to be set twice
    if(!isset($imply_radio_elements)) {
        $element->setValue($_field['value']);
    }
}

Das sollte das Problem lösen.

Der Bugfix wird in dem nächsten Subrelease integriert sein.

gruss
Olaf