Hi Alessandro, 

I don’t know if you saw the Alain’s answer, but as he said, the use of 
submission/@ref will help you to reach your goal. It will allow you to 
determine which instance should be saved by each submission.
By default, when @ref isn’t specified, it is the first one.

        <xf:submission id="save-disciplina" ref="instance('list-disciplina')" 
method="post" action="query_save_disciplina.xq?id_dip={$id_dip}" 
replace="instance" instance="list-disciplina">
            <xf:action ev:event="xforms-submit-done">
                <xf:message level="modal">Dati correttamente 
aggiornati!</xf:message>
            </xf:action>
            <xf:action ev:event="xforms-submit-error">
                <xf:message level="modal">Si è verificato un errore in fase di 
salvataggio!</xf:message>
            </xf:action>
        </xf:submission>
       
        <xf:submission id="save-curriculum" ref="instance('list-curriculum')" 
method="post" action="query_save_curriculum.xq?id_dip={$id_dip}" 
replace="instance" instance="list-curriculum">
            <xf:action ev:event="xforms-submit-done">
                <xf:message level="modal">Dati correttamente 
aggiornati!</xf:message>
            </xf:action>
            <xf:action ev:event="xforms-submit-error">
                <xf:message level="modal">Si è verificato un errore in fase di 
salvataggio!</xf:message>
            </xf:action>
        </xf:submission>

Best,
Josselin 




> Le 29 janv. 2021 à 15:37, Alessandro via Xsltforms-support 
> <[email protected]> a écrit :
> 
> Hi all!
> My attempt is that of managing two instances (which are targeting two 
> different nodes of the same xml file) by means of two repeats contained 
> within the same form. Inserting and deleting rows works well with respect to 
> both the repeats, but it seems possible to finally save to the xml file only 
> the instance that appears at the first place within the model. Why is it so? 
> What am I missing here?
> 
> Regards
> Alex
> 
> The following is my form:
> 
> xquery version "3.0";
> 
> import module namespace my_funcs="http://www.my_funcs.net 
> <http://www.my_funcs.net/>" at "modules/my_app_functions_2.xql";
> 
> declare variable $app_collection := 'resources/data';
> 
> declare variable $id_dip := request:get-parameter("id_dip", "");
> 
> let $disciplina := doc(concat($app_collection, '/', 
> $my_funcs:my_employees_archive))/dipendenti/dipendente[@id=$id_dip]/disciplina
> 
> let $curriculum := doc(concat($app_collection, '/', 
> $my_funcs:my_employees_archive))/dipendenti/dipendente[@id=$id_dip]/curriculum
> 
> let $new_value := doc(concat($app_collection, '/', 
> $my_funcs:my_employees_archive))/dipendenti/options/new_item
> 
> let $file := concat($app_collection, '/', $my_funcs:my_employees_archive)
> 
> let $login := xmldb:login($app_collection, 'admin', 'password')
> 
> let $form :=
> <html xmlns="http://www.w3.org/1999/xhtml <http://www.w3.org/1999/xhtml>" 
> xmlns:xf="http://www.w3.org/2002/xforms <http://www.w3.org/2002/xforms>" 
> xmlns:ev="http://www.w3.org/2001/xml-events 
> <http://www.w3.org/2001/xml-events>" 
> xmlns:xs="http://www.w3.org/2001/XMLSchema 
> <http://www.w3.org/2001/XMLSchema>" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance 
> <http://www.w3.org/2001/XMLSchema-instance>">
> <head>
>     <link rel="stylesheet" type="text/css" 
> href="resources/css/schede_dipendenti_2.css" />
>     <script src="resources/data/my_javascripts.js"/>
>    
>     <xf:model>
>        
>         <xf:instance id="list-curriculum">
>           <data xmlns="">{$curriculum}</data>
>         </xf:instance>
>        
>         <xf:instance id="list-disciplina">
>           <data xmlns="">{$disciplina}</data>
>         </xf:instance>
>                
>         <xf:submission id="save-disciplina" method="post" 
> action="query_save_disciplina.xq?id_dip={$id_dip}" replace="instance" 
> instance="list-disciplina">
>             <xf:action ev:event="xforms-submit-done">
>                 <xf:message level="modal">Dati correttamente 
> aggiornati!</xf:message>
>             </xf:action>
>             <xf:action ev:event="xforms-submit-error">
>                 <xf:message level="modal">Si è verificato un errore in fase 
> di salvataggio!</xf:message>
>             </xf:action>
>         </xf:submission>
>        
>         <xf:submission id="save-curriculum" method="post" 
> action="query_save_curriculum.xq?id_dip={$id_dip}" replace="instance" 
> instance="list-curriculum">
>             <xf:action ev:event="xforms-submit-done">
>                 <xf:message level="modal">Dati correttamente 
> aggiornati!</xf:message>
>             </xf:action>
>             <xf:action ev:event="xforms-submit-error">
>                 <xf:message level="modal">Si è verificato un errore in fase 
> di salvataggio!</xf:message>
>             </xf:action>
>         </xf:submission>
>        
>     </xf:model>
>   </head>
>   <body>
>     <center>
>        
>     <br/>
>        
>     <xf:group ref="instance('list-curriculum')/curriculum">
>       <fieldset id="fieldset-list">
>          <legend>Dati curriculari</legend>
>          <div class="header-disciplina">
>             <table border="0">
>              <tr>
>                  <td>
>                      <div class="leftColumn">Data 1</div>
>                  </td>
>                  <td style="width: 70px;"/>
>                  <td>
>                      <div class="leftColumn">Data 2</div>
>                  </td>
>                  <td style="width: 70px;"/>
>                  <td>
>                      <div class="leftColumn">Descrizione</div>
>                  </td>
>                  <td style="width: 70px;"/>
>                  <td>
>                      <div class="rightColumn">Note</div>
>                  </td>
>              </tr>
>             </table>
>          </div>
>         
>          <xf:repeat id="list-cur" nodeset="riga">
>              <table border="0" id="riga" class="list-table">
>             
>              <tr>
>                  <td>
>                      <xf:input ref="data1/text()" class="short-input" />
>                  </td>
>                  <td>
>                      <xf:input ref="data2/text()" class="short-input" />
>                  </td>
>                  <td>
>                      <xf:input ref="descrizione/text()" class="long-input" />
>                  </td>
>                  <td>
>                      <xf:input ref="note/text()" class="long-input" />
>                  </td>
>              </tr>
>             
>              </table>
>          </xf:repeat>
>       </fieldset>
>      
>       <br/>
>      
>       <br/>
>        
>     <table border="0">
>         <tr>
>             <td style="width: 15px;"/>
>             <td>
>               <xf:trigger>
>                  <xf:label><div class="my_special_button">Elimina riga 
> selezionata dalla lista delle categorie</div></xf:label>
>                  <xf:action ev:event="DOMActivate">
>                     <xf:delete nodeset="riga" at="index('list-cur')" />
>                  </xf:action>
>               </xf:trigger>
>             </td>
>             <td style="width: 15px;"/>
>             <td>
>                <xf:trigger>
>                     <xf:label><div class="my_special_button">Inserisci nuova 
> categoria dopo riga selezionata</div></xf:label>
>                     <xf:action ev:event="DOMActivate">
>                        <xf:insert nodeset="riga" at="index('list-cur')" 
> position="after" />
>                        <xf:setvalue 
> ref="riga[index('list-cur')]/data1/text()" value="'{$new_value}'"/>
>                        <xf:setvalue 
> ref="riga[index('list-cur')]/data2/text()" value="'{$new_value}'"/>
>                        <xf:setvalue 
> ref="riga[index('list-cur')]/descrizione/text()" value="'{$new_value}'"/>
>                        <xf:setvalue ref="riga[index('list-cur')]/note/text()" 
> value="'{$new_value}'"/>
>                     </xf:action>
>                </xf:trigger>
>             </td>
>        </tr>
>    </table>
>     
>      <br/>
>     
>      <table border="0">
>            <tr>
>                 <td style="height: 40px;"/>
>                 <td>
>                     <xf:submit submission="save-curriculum">
>                        <xf:label><div class="my_special_button" style="width: 
> 210px;">Salva modifiche ai dati disciplinari</div></xf:label>
>                     </xf:submit>
>                 </td>
>            </tr>
>         </table>
>      </xf:group>
>     
>      <xf:group ref="instance('list-disciplina')/disciplina">
>       <fieldset id="fieldset-list">
>          <legend>Dati disciplinari</legend>
>          <div class="header-disciplina">
>             <table border="0">
>              <tr>
>                  <td>
>                      <div class="leftColumn">Data</div>
>                  </td>
>                  <td style="width: 70px;"/>
>                  <td>
>                      <div class="rightColumn">Descrizione</div>
>                  </td>
>              </tr>
>             </table>
>          </div>
>         
>          <xf:repeat id="list" nodeset="riga">
>              <table border="0" id="riga" class="list-table">
>             
>              <tr>
>                  <td>
>                      <xf:input ref="data/text()" class="short-input" />
>                  </td>
>                  <td>
>                      <xf:input ref="note/text()" class="iper-long-input" />
>                  </td>
>              </tr>
>             
>              </table>
>          </xf:repeat>
>       </fieldset>
>      
>       <br/>
>      
>       <br/>
>        
>     <table border="0">
>         <tr>
>             <td style="width: 15px;"/>
>             <td> <!--  style="padding-top: 15pt;" -->
>               <xf:trigger>
>                  <xf:label><div class="my_special_button">Elimina riga 
> selezionata dalla lista delle categorie</div></xf:label>
>                  <xf:action ev:event="DOMActivate">
>                     <xf:delete nodeset="riga" at="index('list')" />
>                  </xf:action>
>               </xf:trigger>
>             </td>
>             <td style="width: 15px;"/>
>             <td>
>                <xf:trigger>
>                     <xf:label><div class="my_special_button">Inserisci nuova 
> categoria dopo riga selezionata</div></xf:label>
>                     <xf:action ev:event="DOMActivate">
>                        <xf:insert nodeset="riga" at="index('list')" 
> position="after" />
>                        <xf:setvalue ref="riga[index('list')]/data/text()" 
> value="'{$new_value}'"/>
>                        <xf:setvalue ref="riga[index('list')]/note/text()" 
> value="'{$new_value}'"/>
>                        <!--<xf:setvalue ref="SelectedRow" 
> value="index('list')" />-->
>                     </xf:action>
>                </xf:trigger>
>             </td>
>        </tr>
>    </table>
>     
>      <br/>
>     
>      <table border="0">
>            <tr>
>                 <td style="height: 40px;"/>
>                 <td>
>                     <xf:submit submission="save-disciplina">
>                        <xf:label><div class="my_special_button" style="width: 
> 210px;">Salva modifiche ai dati disciplinari</div></xf:label>
>                     </xf:submit>
>                 </td>
>            </tr>
>            <tr>
>                 <td style="width: 40px;"/>
>                 <td >
>                 <xf:trigger>
>                       <xf:label class="my_button"><div 
> class="flipped">&#10140;</div>Torna<div 
> class="flipped">&#10140;</div>indietro</xf:label>
>                       <xf:action ev:event="DOMActivate">
>                        <xf:load resource="javascript:GoBack()" />
>                       </xf:action>
>                     </xf:trigger>
>                 </td>
>            </tr>
>         </table>
>      </xf:group>
>     
>     </center>
>         <br/>
>         <br/>
>   </body>
> </html>
> let $xslt-pi := processing-instruction xml-stylesheet {'type="text/xsl" 
> href="../xsltforms/xsltforms.xsl"'}
>   return ($xslt-pi,$form)
> 
> -- 
> Sent with Tutanota, the secure & ad-free mailbox: 
> https://tutanota.com
> _______________________________________________
> Xsltforms-support mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/xsltforms-support

_______________________________________________
Xsltforms-support mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xsltforms-support

Reply via email to