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"; 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"; 
xmlns:xf="http://www.w3.org/2002/xforms"; 
xmlns:ev="http://www.w3.org/2001/xml-events"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsi="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

Reply via email to