FormBuilder: Checkboxen und radio-button untereinander anlegen

Hilfe zu Modulen und Tags
Post Reply
dylan

FormBuilder: Checkboxen und radio-button untereinander anlegen

Post by dylan »

Eine Frage zum Modul FormBuilder 0.5.11.

Wenn ich im FormBuilder eine Kontrollkästchen-Gruppe (checkboxes) anlege werden sie im Tabellen-Template nebeneinander angezeigt.
Ist es möglich die Kontrollkästchen untereinander anzuzeigen? In den Erweiterte Einstellungen und im Formular-Template konnte ich keine Möglichkeit dazu finden. Hat vielleicht jemand mit FormBuilder Kontrollkästchen- oder Optionsfeld-Gruppe (radio) untereinander angelegt und kann mir Tipps geben?
antibart
Power Poster
Power Poster
Posts: 1162
Joined: Sun Aug 17, 2008 9:29 am

Re: FormBuilder: Checkboxen und radio-button untereinander anlegen

Post by antibart »

Klar ist das möglich. Aber natürlich nicht auf Knopfdruck.

Da es eine reine Sache des HTML ist, natürlich über das Formular-Template.

Ich muss allerdings zugeben, dass es etwas Fummelei war, bis es auch valide war. Obwohl ich im Tabellenschreiben recht geübt bin, hat es doch gedauert, herauszufinden, an welcher Stelle genau die Zellen und Zeilen geschlossen / umgebrochen werden müssen, da die Felder ja dynamisch generiert werden.

Ich weiß nicht, ob es dir hilft, aber hier mal mein Code mit Checkboxen untereinander:

Code: Select all

                                                                                                                                                {* TABLE FORM LAYOUT / Field titles on Left *}
{* next line sets number of columns for things like checkbox groups *}
{assign var="cols" value="3"}
{$fb_form_header}
{if $fb_form_done == 1}
        {* This first section is for displaying submission errors *}
        {if $fb_submission_error}
                <div class="error_message">{$fb_submission_error}</div>
                {if $fb_show_submission_errors}
                        <table class="error">
                        {foreach from=$fb_submission_error_list item=thisErr}
                                <tr><td>{$thisErr}</td></tr>
                        {/foreach}
                        </table>
                {/if}
        {/if}
{else}
        {* this section is for displaying the form *}
        {* we start with validation errors *}
        {if $fb_form_has_validation_errors}
                <div class="error_message">
                <ul>
                {foreach from=$fb_form_validation_errors item=thisErr}
                        <li>{$thisErr}</li>
                {/foreach}
                </ul>
                </div>
        {/if}
        {if $captcha_error}
                <div class="error_message">{$captcha_error}</div>
        {/if}

        {* and now the form itself *}
        {$fb_form_start}
        <div>{$fb_hidden}</div>

    <table cellpadding="0" cellspacing="10" {if $css_class != ''} class="{$css_class}"{/if}>
    {if $total_pages gt 1}<tr><td colspan="2">{$title_page_x_of_y}</td></tr>{/if}
    {foreach from=$fields item=entry}
          {if $entry->display == 1 &&
            $entry->type != '-Fieldset Start' &&
            $entry->type != '-Fieldset End' }
            <tr>
                    {strip}
                    <td width="220" align="left" valign="top"
                    {if $entry->required == 1 || $entry->css_class != ''} class="
                            {if $entry->required == 1}
                                    required
                            {/if}
                            {if $entry->required == 1 && $entry->css_class != ''} {/if}
                            {if $entry->css_class != ''}
                                    {$entry->css_class}
                            {/if}
                            "
                    {/if}
                    >
                    {if $entry->hide_name == 0}
                            {$entry->name}
                            {if $entry->required_symbol != ''}
                                    {$entry->required_symbol}
                            {/if}
                    {/if}
                    </td>

<!--- hier müsste der relevante Teil für die Checkboxen beginnen --->


<td align="left" valign="top"{if $entry->css_class != ''} class="{$entry->css_class}"{/if}>
                    {if $entry->multiple_parts == 1}

                                {section name=numloop loop=$entry->input}
                                  {$entry->input[numloop]->input} {$entry->input[numloop]->name}{if $entry->input[numloop]->op}{$entry->input[numloop]->op}{/if}<br />
                                           {if not ($smarty.section.numloop.rownum mod $cols)}
                                                {if not $smarty.section.numloop.last}

                                                {/if}
                                                {/if}
                                       {if $smarty.section.numloop.last}
                                {math equation = "n - a % n" n=$cols a=$entry->input|@count assign="cells"}
                                {if $cells ne $cols}
                                        {section name=pad loop=$cells}

                                        {/section}
                                        {/if}

                                {/if}
                            {/section}

                    {else}
                            {$entry->input}
                    {/if}
                    {if $entry->valid == 0} <--- {$entry->error}{/if}
                    </td></tr>
                    {/strip}
          {/if}
{/foreach}
{if $has_captcha == 1}
<tr><td>{$graphic_captcha}</td><td>{$input_captcha}<br />{$title_captcha}</td></tr>
{/if}
<tr><td>{$prev}</td><td>{$submit}</td></tr>
</table>
{$fb_form_end}
{/if}
{$fb_form_footer}
dylan

Re: FormBuilder: Checkboxen und radio-button untereinander anlegen

Post by dylan »

Ich habe den code im Formular-Template (Tabelle) an entspr. Stelle ausgetauscht, bekomme aber nicht das gewünschte Ergebnis.
Es wäre hilfreich wenn Du das kompl. Template posten könntest, vorausgesetzt der code lässt sich jetzt posten..?

Danke
antibart
Power Poster
Power Poster
Posts: 1162
Joined: Sun Aug 17, 2008 9:29 am

Re: FormBuilder: Checkboxen und radio-button untereinander anlegen

Post by antibart »

mein code bezieht sich übrigens auf das template mit "Feldname links" ... dH: benutzt du "Feldname oben", musst du eh selber basteln.

So sieht es aus:

http://www.latruffe.de/bestellung.html

Zweiter versuch:

Code: Select all

{assign var="cols" value="3"}
{$fb_form_header}
{if $fb_form_done == 1}
        {* This first section is for displaying submission errors *}
        {if $fb_submission_error}
                <div class="error_message">{$fb_submission_error}</div>
                {if $fb_show_submission_errors}
                        <table class="error">
                        {foreach from=$fb_submission_error_list item=thisErr}
                                <tr><td>{$thisErr}</td></tr>
                        {/foreach}
                        </table>
                {/if}
        {/if}
{else}
        {* this section is for displaying the form *}
        {* we start with validation errors *}
        {if $fb_form_has_validation_errors}
                <div class="error_message">
                <ul>
                {foreach from=$fb_form_validation_errors item=thisErr}
                        <li>{$thisErr}</li>
                {/foreach}
                </ul>
                </div>
        {/if}
        {if $captcha_error}
                <div class="error_message">{$captcha_error}</div>
        {/if}

        {* and now the form itself *}
        {$fb_form_start}
        <div>{$fb_hidden}</div>

    <table cellpadding="0" cellspacing="10" {if $css_class != ''} class="{$css_class}"{/if}>
    {if $total_pages gt 1}<tr><td colspan="2">{$title_page_x_of_y}</td></tr>{/if}
    {foreach from=$fields item=entry}
          {if $entry->display == 1 &&
            $entry->type != '-Fieldset Start' &&
            $entry->type != '-Fieldset End' }
            <tr>
                    {strip}
                    <td width="220" align="left" valign="top"
                    {if $entry->required == 1 || $entry->css_class != ''} class="
                            {if $entry->required == 1}
                                    required
                            {/if}
                            {if $entry->required == 1 && $entry->css_class != ''} {/if}
                            {if $entry->css_class != ''}
                                    {$entry->css_class}
                            {/if}
                            "
                    {/if}
                    >
                    {if $entry->hide_name == 0}
                            {$entry->name}
                            {if $entry->required_symbol != ''}
                                    {$entry->required_symbol}
                            {/if}
                    {/if}
                    </td><td align="left" valign="top"{if $entry->css_class != ''} class="{$entry->css_class}"{/if}>
                    {if $entry->multiple_parts == 1}

                                {section name=numloop loop=$entry->input}
                                  {$entry->input[numloop]->input} {$entry->input[numloop]->name}{if $entry->input[numloop]->op}{$entry->input[numloop]->op}{/if}<br />
                                           {if not ($smarty.section.numloop.rownum mod $cols)}
                                                {if not $smarty.section.numloop.last}

                                                {/if}
                                                {/if}
                                       {if $smarty.section.numloop.last}
                                {math equation = "n - a % n" n=$cols a=$entry->input|@count assign="cells"}
                                {if $cells ne $cols}
                                        {section name=pad loop=$cells}

                                        {/section}
                                        {/if}

                                {/if}
                            {/section}

                    {else}
                            {$entry->input}
                    {/if}
                    {if $entry->valid == 0} <--- {$entry->error}{/if}
                    </td></tr>
                    {/strip}
          {/if}
{/foreach}
{if $has_captcha == 1}
<tr><td>{$graphic_captcha}</td><td>{$input_captcha}<br />{$title_captcha}</td></tr>
{/if}
<tr><td>{$prev}</td><td>{$submit}</td></tr>
</table>
{$fb_form_end}
{/if}
{$fb_form_footer}
Last edited by antibart on Thu May 07, 2009 1:59 pm, edited 1 time in total.
dylan

Re: FormBuilder: Checkboxen und radio-button untereinander anlegen

Post by dylan »

Vielen Dank, das funktioniert wunderbar. Ich habe das gleiche Template genutzt, so das ich jetzt nur noch minimale Anpassungen vornehmen muss. Das Template macht in meinen Augen so viel mehr Sinn, gerade bei umfangreichen Formularen behält man so die Übersicht.

Nochmals, tausend Dank!
antibart
Power Poster
Power Poster
Posts: 1162
Joined: Sun Aug 17, 2008 9:29 am

Re: FormBuilder: Checkboxen und radio-button untereinander anlegen

Post by antibart »

Es kann von mir aus gern zur allgemeinen Verfügung in die Modul-Templates aufgenommen werden.
cyberman

Re: FormBuilder: Checkboxen und radio-button untereinander anlegen

Post by cyberman »

Sollte es nicht auch mit ein bißchen CSS funktionieren, indem du diese input-Elemente als Block formatierst :)?
Post Reply

Return to “Module und Tags”