[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