Можно ли иметь две кнопки отправки в одной форме?

В бэк-офисе Prestashop я создал форму с кнопкой отправки, помеченной как «Сохранить». Можно ли добавить еще одну кнопку отправки с другим действием?


person venkatesh reddy    schedule 16.02.2017    source источник
comment
stackoverflow.com/questions/16162972/   -  person Harsha W    schedule 16.02.2017
comment
Возможный дубликат более одной кнопки отправки   -  person Harsha W    schedule 16.02.2017


Ответы (2)


Просто осмотрите form.tpl в admin/themes/default/template/helpers/form/ там вы найдете деталь

{if isset($fieldset['form']['buttons'])}
  {foreach from=$fieldset['form']['buttons'] item=btn key=k}
    {if isset($btn.href) && trim($btn.href) != ''}
      <a href="{$btn.href}" {if isset($btn['id'])}id="{$btn['id']}"{/if} class="btn btn-default{if isset($btn['class'])} {$btn['class']}{/if}" {if isset($btn.js) && $btn.js} onclick="{$btn.js}"{/if}>{if isset($btn['icon'])}<i class="{$btn['icon']}" ></i> {/if}{$btn.title}</a>
    {else}
      <button type="{if isset($btn['type'])}{$btn['type']}{else}button{/if}" {if isset($btn['id'])}id="{$btn['id']}"{/if} class="btn btn-default{if isset($btn['class'])} {$btn['class']}{/if}" name="{if isset($btn['name'])}{$btn['name']}{else}submitOptions{$table}{/if}"{if isset($btn.js) && $btn.js} onclick="{$btn.js}"{/if}>{if isset($btn['icon'])}<i class="{$btn['icon']}" ></i> {/if}{$btn.title}</button>
    {/if}
  {/foreach}
{/if}

так что, как вы видите, вы можете определить массив пользовательских кнопок

<button type="{if isset($btn['type'])}{$btn['type']}{else}button{/if}"...

здесь тип может быть «отправить», и если «имя» для вашей кнопки определено, то в postProcess () вы можете делать свои вещи для дополнительной кнопки типа отправки в форме hepler.

f.e.

public function renderForm() {

    $default_lang = (int)Configuration::get('PS_LANG_DEFAULT');
    $fields_form = array();

    $fields_form[0]['form'] = array(
        'legend' => array(
            ... legend part...
        ),
        'input' => array(
            ...arrays of inputs...
        ),
        'submit' => array(
            ...default submit button...
        ),
        'buttons' => array(
            '0' => array(
                'type' => 'submit',
                'title' => $this->l('Whatever'),
                'name' => 'MySubmitName',
                'icon' => 'process-icon-back',
                'class' => 'pull-right',
            )
        )
    );

    $helper = new HelperForm();

    // Module, token and currentIndex
    $helper->token = Tools::getAdminTokenLite('AdminYourClassName');
    $helper->currentIndex = self::$currentIndex;

    // Language
    $helper->default_form_language = $default_lang;
    $helper->allow_employee_form_lang = $default_lang;

    // Title and toolbar
    $helper->show_toolbar = false;

    $helper->submit_action = 'submitWhatever';

    return $helper->generateForm($fields_form);

}
person PepeLopez    schedule 01.08.2017

Чтобы выполнить то, что вам нужно, вы не должны привязывать несколько действий к одному и тому же помощнику формы, а просто указывать другое имя для каждого другого типа ввода отправки, определенного для помощника.

person Knowband Plugins    schedule 23.02.2017