symfony / ux

Symfony UX initiative: a JavaScript ecosystem for Symfony

Home Page:https://ux.symfony.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[LiveComponent] Form submit ajax with multiple submit buttons

bastien70 opened this issue · comments

Hello, I've a form in a livecomponent. The form is submitted via Ajax. :

{{ form_start(form, {
                attr: {
                    'data-action': 'live#action:prevent',
                    'data-live-action-param': 'save'
                }
            }) }}
            
            //...
            
            <button class="btn btn-primary" type="submit" name="submit_value" value="save" data-action="live#submit" data-submit-value="save">
                        {{ this.editing ? 'Enregistrer les modifications' : 'Ajouter la catégorie' }}
                    </button>

<button class="btn btn-link text-black" type="submit" name="submit_value" value="save_and_quit" data-action="live#submit" data-submit-value="save_and_quit">
                    <b>Enregistrer et quitter</b>
                </button>

I've two submit buttons.
I want to know which button is clicked when submitting the form.

In a normal controller, I can run $submitValue = $request->request->get('submit_value');

But from the component, I don't know how to do it.
Is there a solution please ?

EDIT : I found a solution. Just adding data-model to my two buttons, with value :

 <button class="btn btn-primary" type="submit" name="submit_value" value="save" data-action="live#update" data-model="submitType" data-value="save">
                        {{ this.editing ? 'Enregistrer les modifications' : 'Ajouter la catégorie' }}
 </button>

<button class="btn btn-link text-black" type="submit" name="submit_value" value="save_and_quit" data-action="live#update" data-model="submitType" data-value="save_and_quit">
                    <b>Enregistrer et quitter</b>
</button>

Now, when I submit the form, the submitType (liveprop) is updated before, so I can know which button is clicked