Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

submit multiple forms with p:commandbutton

I want to submit multiple forms with one submit button. I have multiple forms because each p:fileUpload needs an own form (when in advanced mode).

Here's the code for my submit button:

<h:form id="form1">...</h:form>
<h:form id="form2">...</h:form>
<h:form>
    <p:commandButton value="Save" widgetVar="saveButtonBottom"
    action="#{bean.submit}" ajax="false"
    process=":form1,:form2,@this" />
</h:form>

It does call bean.submit(), but it does not process the other forms. Maybe my understanding of processing is wrong, but I thought if I put a form into "process", then it will be submitted.

Any idea how to make it work?

like image 841
Thomas Walther Avatar asked Mar 16 '12 14:03

Thomas Walther


2 Answers

That's the limitation of HTML. Only the input data containing within the current form (wherein the command is been invoked) will be sent to the server side. As to the process attribute, that only identifies which part(s) of that submitted data must be processed by JSF after they have arrived.

Any idea how to make it work?

Put all related data in the same form. Use if necessary just a single <p:fileUpload> with multiple file selection support.

like image 92
BalusC Avatar answered Nov 19 '22 03:11

BalusC


Place this inside form2:

<p:remoteCommand name="sendAjaxicalPGfilter"
update="form2:minMaxTable"
action="#{OptimizationSettingsBean.handleProductGroupChange}"  />

call this on form1 command button

<p:commandButton value="Done"
oncomplete="selectedSettingDlg.hide();" onstart="sendAjaxicalPGfilter();"
ajax="true" action="#{CreateSourcingPlanBean.dummy}" 
                            update=":form1:assignmentList" >
                </p:commandButton>
like image 5
amandep Avatar answered Nov 19 '22 05:11

amandep