Skip to content

[LiveComponent] Form submit ajax with multiple submit buttons #1858

@bastien70

Description

@bastien70

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions