Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    372

    XSL - scrivere un div quando mi cambia un valore

    ciao a tutti,

    sto utilizzando xsl per scrivere un elenco di visite con utente + nomemedico.
    il cliente ora mi chiede di raggrupparli per nomemedico e scrivere in grosso solo quando cambia il nomemedico:

    ES:

    MEDICO1
    nome1 cognome1
    nome2 cognome2
    nome3 cognome3

    MEDICO2
    nome4 cognome4
    nome5 cognome5

    ho provato con xsl:variable ma ho letto che una volta settate non si possono modificare (è corretto???).

    come posso fare in xsl???

    ho provato con js nell'XSL così:

    codice:
    <msxsl:script language="JScript" implements-prefix="user"> 
    var medico1=''; 
    function NomeMedico() { return medico1; } 
    function SetNomeMedico2(nm) { medico1=nm; }
     </msxsl:script>
    e successivamente:

    codice:
    <xsl:if test="$vM != MEDICO">
    
    <xsl:value-of select="SetNomeMedico2(MEDICO)" />
    <xsl:text>**** SETTOOOOO *****</xsl:text>
    	<xsl:text>**** MEDICO: *****</xsl:text>
    	
    <xsl:value-of select="MEDICO" disable-output-escaping="no" />
    
    
    </xsl:if>
    ma questo codice me lo scrive solo la prima volta e ogni volta che cambia il parametro "MEDICO" me lo autosetta e non mi entra nell'IF

    come posso fare???

    grazier

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    372
    scusate sbagliato secondo codice:

    codice:
    <xsl:if test="user:NomeMedico() != MEDICO">
    
    <xsl:value-of select="user:SetNomeMedico2(MEDICO)" />
    <xsl:text>**** SETTOOOOO *****</xsl:text>
    	<xsl:text>**** MEDICO: *****</xsl:text>
    	
    <xsl:value-of select="MEDICO" disable-output-escaping="no" />
    
    
    </xsl:if>

  3. #3
    Utente di HTML.it L'avatar di ilgiovo
    Registrato dal
    Aug 2001
    Messaggi
    518
    puoi fare i group by con le key

    codice:
    <xsl:key name="key_medico" match="elemento_riga" use="nodo_valore_medico"/>
    	
    <xsl:template match="/">
    <xsl:apply-templates select="elemento_root" mode="group_medico"/>
    </xsl:template>
    
    
    <xsl:template match="elemento_root" mode="group_medico">
    	<xsl:for-each select="row[generate-id() = generate-id(key('key_medico', nodo_valore_medico)[1])]">
    
    MEDICO <xsl:value-of select="nodo_valore_medico"/>
    		<xsl:for-each select="key('cq_key', @cq_id)">	
                           NOME COGNOME: <xsl:value-of select="nodo_valore_visita"/>
    		</xsl:for-each>
    	</xsl:for-each>
    </xsl:template>
    
    </xsl:stylesheet>
    te l'ho fatta un po' generica perchè non so che struttura xml stai usando quindi non riesco a farti un esempio calzante.. cercati un po' di documentazione sulle key e la funzione generate-id
    Cacca!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.