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?][XForms?] Changer la couleur de fond selon la saisie


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut [XSLT?][XForms?] Changer la couleur de fond selon la saisie
    Bonjour,

    Je ne suis pas sûr de la technologie nécessaire (ou la mieux adaptée) à mon problème, d'où la présence de points d'interrogation au côté des technologies entre crochet dans le titre de mon sujet.

    Je cherche à réaliser la chose suivante :
    1 - Un script PHP liste les fichiers d'un type donné présents dans le dossier courant et me renvoie le tout dans un tableau indicé (déjà fait).
    2 - Sur la même page, une série de champs de saisie dans lesquels l'utilisateur saisi un indice, par exemple, le numéro '3' (déjà fait).
    3 - Dès la saisie, et sans rechargement de la page, toutes les lignes jusqu'à la ligne dont l'indice est compris entre le '0' et le '3' seront colorées en rouge (par exemple).
    4 - Dans le champs de saisie suivant, l'utilisateur saisi un autre indice, le '7'.
    5 - Dès la saisie, et sans rechargement de la page, toutes les lignes dont l'indice est strictement supérieur à '3' et inférieur ou égal à '7' seront colorées en vert (par exemple).
    6 - etc...

    Je ne réfléchis qu'à partir de mes maigres connaissances en XSLT. N'y a-t-il pas possibilité de passer par les attributs des balises ?

    Merci par avance pour vos pistes de réflexion... ou mieux, pour vos solutions...

    Leauh

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Bonjour,

    En standard, XForms n'intègre pas la possibilité de modifier des attributs mais une solution de type AVT (utilisation des {}), comme dans XSLT, est fréquemment disponible (je prévois de l'intégrer dans mon produit dès que j'en aurais besoin !). C'est une bonne solution pour changer de couleur, par exemple.

    XSLT n'est pas, non plus, prévu avec XForms sauf que XForms peut supporter soit XPath 1.0 soit XPath 2.0 et que, dans ce dernier cas, il est facile d'envisager une fonction supplémentaire pour réaliser une transformation (pour l'instant, mon produit ne supporte que XPath 1.0 mais l'ajout d'une telle fonction y est aussi envisageable, sans nécessairement passer à XPath 2.0).

    XSLT est bien pour générer des sous-arbres complexes. Dans votre cas, il faudrait plein de petites transformations et cela risque d'être lourd plutôt que la solution AVT.

    Sinon, en AJAX, vous pourriez envisager un aller-retour serveur rien que pour faire une transformation XSLT de la partie de la page concernée. Mais, ne serait-ce pas dommage ???

    Alain
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Bonjour Alain,

    Merci pour votre réponse si rapide.

    En réponse à votre dernier paragraphe, je trouve effectivement que faire un aller-retour pour opérer une transformation XSLT serait dommage...

    Cependant, je n'ai aucune idée de comment utiliser votre suggestion consistant à utiliser les crochets des Attribute Value Type des xForms.
    J'ignorais totalement qu'il était possible de changer les AVT à la volée, sans besoin de re-charger la page, Pourriez-vous me donner un peu plus de détails sur cette opération ? La documentation xForms disponible est trop obscure pour moi. J'ai bien acheté le livre de chez O'Reilly, mais je reste très amateur.

    Merci encore pour votre aide.

    Leauh

  4. #4
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    La notation AVT (Attribute Value Template) existe déjà dans XSLT : plutôt que d'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <element>
     <xsl:attribute name="monattr"><xsl:value-of select="calcul()"/></xsl:attribute>
    </element>
    on écrit directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <element monattr="{calcul()}"/>
    Dans XForms, le correspondant de <xsl:value-of> est <xf:output>. Cet élément permet, par défaut, de récupérer une valeur et de la placer en tant que noeud texte. La notation AVT pour XForms consiste à permettre de placer une valeur texte calculée dans un attribut et non pas dans un élément.

    J'ai du mal encore à croire que les rédacteurs de XForms soient passés à côté de ce besoin. J'en ai déjà discuté sur la liste du W3C correspondante et j'ai obtenu une réponse très claire d'un des responsables d'Orbeon Forms selon laquelle ils n'ont pas pu faire autrement que d'implémenter la notation AVT et qu'ils ne sont pas les seuls à l'avoir fait !

    La documentation xForms disponible est trop obscure pour moi. J'ai bien acheté le livre de chez O'Reilly, mais je reste très amateur.
    Je connais l'auteur de ce livre (il a participé à l'écriture de XForms 1.0) et il s'intéresse tout particulièrement à XSLTForms (au point qu'il m'a demandé un accès développeur à mon projet sur sourceforge.net pour s'y plonger) !
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Bonjour Alain,

    Merci infiniment pour votre explication. Je n'avais jamais entendu parler de ceci (ou peut-être n'ai-je tout simplement pas été assez attentif au bon moment).

    Je dois dire que vos billets ne laissent aucun doute sur votre maîtrise de la chose... Je suis presque gêné qu'un amateur comme moi puisse recevoir aide de vous.

    Je vais immédiatement travailler cette piste.

    Merci encore.

    Leauh

Discussions similaires

  1. Changer couleur de fond selon 2 criteres
    Par benzot dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/12/2013, 00h44
  2. [XL-2003] Changer la couleur de fond d'une cellule selon condition
    Par iIncoming dans le forum Excel
    Réponses: 6
    Dernier message: 03/03/2013, 09h33
  3. Réponses: 3
    Dernier message: 11/01/2007, 17h52
  4. [POO] Changer la couleur de fond d'un tableau
    Par Netoman dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/12/2004, 20h12
  5. Changer la couleur de fond de l'écran
    Par tnk dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 19/01/2003, 01h37

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