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">➜</div>Torna<div
> class="flipped">➜</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