IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSLT] perte de la sélection d'un combo après un tri


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier Avatar de KRis
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 232
    Points : 105
    Points
    105
    Par défaut [XSLT] perte de la sélection d'un combo après un tri
    Bonjour à tous,
    je débute en xsl et xml (et javascript)
    j'affiche dans un html résultant un tableau avec un combo proposant de trier suivant quelques champs.
    Lors de la sélection d'un champs dans le combo, j'appelle une fonction JavaScript qui éxecute correctement le tri.
    mon seul problème est que je perds la sélection du combo, car la page est rechargée après l'appel de la fonction de tri...
    ci-dessous mon xsl et xml, quelqu'un aurait-il une solution ? j'approche du but... mais il reste ce petit problème !

    mon xsl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/">
    <html>
     <head>
     <title>Listing VO</title>
     <script language="JScript"><![CDATA[
     
     // Déclaration des variables
     var XSLSource = new Object();          
     var XMLSource = new Object();
     
     // Chargement des documents XML et XSL
     XMLSource = document.XMLDocument;
     XSLSource = document.XSLDocument;
     
     function tri (rubrique) {
     
      // Déclaration des variables
     var XSLSort = new  Object();            
     
     // Sélection de l'ordre xsl:sort
     XSLSort =
       XSLSource.documentElement.selectNodes("//xsl:sort");
     
      // Affectation de la rubrique de tri
     if (XSLSort[0].attributes(0).text == rubrique.toString()){
       if ( XSLSort[0].attributes(1).text == "ascending") {
         XSLSort[0].attributes(1).text = "descending";
       } else {
         XSLSort[0].attributes(1).text = "ascending";
       }
     } else {
       XSLSort[0].attributes(1).text = "ascending";
     }
     XSLSort[0].attributes(0).text = rubrique.toString();
     // affichage de l'ordre de tri
     XSLem = XSLSource.documentElement.selectNodes("//p/em");
     XSLem [0].text = rubrique.toString();
     XSLem [1].text = XSLSort[0].attributes(1).text ;
     // Réaffichage de la page
     document.body.innerHTML =
       XMLSource.transformNode(XSLSource);
    }]]></script>
     </head>
     <body>
       <p>Tri sur <em>NUMERO</em> par ordre <em>descending</em>.</p>
       <p>Cliquez sur un titre pour changer l'ordre de tri.</p>
       <table>
          <tr>
            <th align="left">Trier selon
              <select onChange="tri(this.options[this.selectedIndex].value);">
              <option value="MARQUE">
              	par marque
              </option>
              <option value="MODELE" selected="selected">
              	par modèle
              </option>  
              <option value="DATE_IMMAT">
              	par date d'immatriculation
              </option>                    
              </select>
            </th>
          </tr>   
       </table>
       <table border="1" cellspacing="1">
         <tr>
           <th id="HeaderColumnNUMERO"
             onclick="javascript:tri('NUMERO');">Numéro</th>
           <th id="HeaderColumnMARQUE"
             onclick="javascript:tri('MARQUE');">Marque</th>
           <th id="HeaderColumnMODELE"
             onclick="javascript:tri('MODELE');">Modèle</th>
           <th id="HeaderColumnIMMATRICULATION"
             onclick="javascript:tri('IMMATRICULATION');"
             >Immatriculation</th>
           <th id="HeaderColumnDATE_IMMAT"
             onclick="javascript:tri('DATE_IMMAT');"
             >Date d'immatriculation</th>
         </tr>
         <xsl:apply-templates select="VEHICULES/VEHICULE">
           <xsl:sort select="NUMERO" order="descending"/>
         </xsl:apply-templates>
       </table>
     </body>
    </html>
    </xsl:template>
    <xsl:template match="VEHICULE">
     <tr>
       <td>
         <xsl:value-of select="NUMERO"/>
       </td>
       <td>
         <xsl:value-of select="MARQUE"/>
       </td>
       <td>
         <xsl:value-of select="MODELE"/>
       </td>
       <td>
         <xsl:value-of select="IMMATRICULATION"/>
       </td>
       <td>
         <xsl:value-of select="DATE_IMMAT"/>
       </td>
     </tr>
    </xsl:template>
    </xsl:stylesheet>
    mon xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <?xml:stylesheet type="text/xsl" href="tri.xsl"?>
    <VEHICULES>
          <VEHICULE>
                <NUMERO>000066</NUMERO>
                <MARQUE>Daewoo</MARQUE>
                <MODELE>Lanos SE GPL</MODELE>
                <IMMATRICULATION>9999 ZZ 99</IMMATRICULATION>
                <DATE_IMMAT>1999-11-01</DATE_IMMAT>
          </VEHICULE>
          <VEHICULE>
                <NUMERO>000180</NUMERO>
                <MARQUE>Daewoo</MARQUE>
                <MODELE>Lanos SE GPL</MODELE>
                <IMMATRICULATION>7777 XX 99</IMMATRICULATION>
                <DATE_IMMAT>1999-10-01</DATE_IMMAT>
          </VEHICULE>
          <VEHICULE>
                <NUMERO>000280</NUMERO>
                <MARQUE>Daewoo</MARQUE>
                <MODELE>Lanos SE GPL</MODELE>
                <IMMATRICULATION>8888 XX 99</IMMATRICULATION>
                <DATE_IMMAT>2000-10-01</DATE_IMMAT>
          </VEHICULE>
    </VEHICULES>

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    jette plutot un coup d'oeil ici pour les tris, dire que modifier la feuille xslt n'est pas propre est un doux euphémisme....
    http://www.developpez.net/forums/d35...xml/#post22693

    La techno des paramètres ici utilisé devrait te permettre de résoudre tous tes pb

Discussions similaires

  1. Sélection d'un combo à l'intérieur d'un formPanel
    Par titou624 dans le forum Ext JS / Sencha
    Réponses: 3
    Dernier message: 24/02/2010, 16h27
  2. Sélection sur une combo
    Par univers63 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/01/2010, 08h47
  3. Réponses: 2
    Dernier message: 08/10/2007, 10h09
  4. [XSLT] Perte de mon balisage html
    Par Xunil dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 13/08/2007, 10h13
  5. Réponses: 11
    Dernier message: 14/03/2007, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo