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

XMLRAD Discussion :

XMLC_SkinPath : variable indéfinie


Sujet :

XMLRAD

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut XMLC_SkinPath : variable indéfinie
    Bonjour,
    XMLRAD 2005, delphi, MSSql

    J'ai un petit problème avec XMLC_SkinPath.
    Dans notre projet, nous utilisons le partial update pour vérifier que certains champs sont correctement remplis (avec du code delphi).
    Le problème est que lorsque nous revenons sur notre formulaire, après vérification des champs, et si une erreur est levée (un champ obligatoire a été trouvé vide), nous avons une erreur javascript : XMLC_SkinPath is not defined.
    Le problème vient de cette partie du fichier xslc.js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    datePickerImages['normal'].src = XMLC_SkinPath + 'datepicker/datepicker.gif';
    datePickerImages['over'].src = XMLC_SkinPath + 'datepicker/datepicker_over.gif';
    datePickerImages['down'].src = XMLC_SkinPath + 'datepicker/datepicker_down.gif';
    Ce qui voudrait dire qu'à un moment, xslc.js es appelé alors que XMLC_SkinPath n'est pas défini.
    Si je regarde le source de mes pages, XMLC_SkinPath ets toujours bien défini (en js) avant l'inclusion du fichier xslc.js.
    Ceci dit, dans le cadre de partial update, je ne sais pas.

    J'ai ajouté ceci au xslc.js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (XMLC_SkinPath == undefined)
        var XMLC_SkinPath;
    var datePickerImages = new Array();
    datePickerImages['normal'] = new Image(16,16);
    datePickerImages['over'] = new Image(16,16);
    datePickerImages['down'] = new Image(16,16);
    datePickerImages['normal'].src = XMLC_SkinPath + 'datepicker/datepicker.gif';
    datePickerImages['over'].src = XMLC_SkinPath + 'datepicker/datepicker_over.gif';
    datePickerImages['down'].src = XMLC_SkinPath + 'datepicker/datepicker_down.gif';
    Je n'ai plus l'erreur, et si je fais un alert (XMLC_SkinPath); dans le fichier xslc.js, je retrouve ma valeur par défaut sur la plupart des écrans (donc elle n'est pas écrasée si elle existe, ouf...), et je retrouve la chaine 'undefined' (dans mon alert box) dans le cas de ces checks de formulaires.
    Et, plus important, je n'ai plus d'erreur js...!

    Ceci dit...quelqu'un a une explication ? Et peut-être une solution moins sauvage ?

    Merci :-)

  2. #2
    Membre actif Avatar de Jeweller
    Inscrit en
    Août 2003
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 357
    Points : 278
    Points
    278
    Par défaut
    Hello!
    Lors du partialUpdate, la page "partialée" est chargée dans un iframe de ta page principale. Elle est considérée comme une page fille. Donc pour faire référence à des éléments de la page affichée (variable js, fonctions js...) il faut utiliser le référencement "parent":

    Ensuite biensur tout dépend de ce que tu places dans ta page fille, mais bien souvent on utilisera des éléments de la page principale car la page servant au partialupdate est minimale et contient juste le html qui va bien. Vérifie c'est certainement ce qui se passe pour toi.

    Michael

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Hello :-)

    Merci pour la réponse!

    Je comprends bien le problème; mais dans le cas (fréquent j'imagine) où le fichier source appelé par l'iframe n'est qu'un simple xmlgram (sans xsl) :
    - comment lui dire d'aller chercher la variable dont il a besoin dans le document parent?
    - pourquoi a t il besoin de cette variable...? Du moins, où est-ce déclaré? Est-ce un appel fait par défaut sur chaque page html créée par xmlrad ?
    Dans le code xml généré par cette page (celle appelée dans l'iframe du partial update), il n'y a pas de référence à XMLC_SkinPath.
    Il y a juste XMLC_Skin, qui contient la valeur correcte, en l'occurence.

  4. #4
    Membre actif Avatar de Jeweller
    Inscrit en
    Août 2003
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 357
    Points : 278
    Points
    278
    Par défaut
    où le fichier source appelé par l'iframe n'est qu'un simple xmlgram (sans xsl) :
    Un simple xmlgram ? Des lors que tu as une page de retour, tu as une "page" html qui arrive. Les Xmlgram/xsl n'interviennent pas à ce niveau.
    Si tu executes un BusinessService (xmlservice sans xsl), ta page de réponse sera la NextAction de celui-ci (si tu n'en as pas, le retour sera du xml et le partialupdate ne fonctionnera jamais)... et tu verras donc bien arriver une page html construite par xmlrad. Et forcément puisque c'est elle même qui va "se copier" dans ta page principale (celle qui contient l'iframe), c'est le principe! . C'est donc dans celle ci que tu vas voir ton code js qui produit l'erreur.
    Jetes un oeil dans le xsl de cette page. Généralement, les pages de partial update ne font pas d'appel à xslcage qui défini la plus part des entêtes et variables. Il doit y avoir un composant qui en a besoin.

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Ok j'a rien dit ! ;-)
    En fait, je n'avais pas fait attention, parce que le principe était le suivant : on balance avec du js, à partir de la page principale, le résultat du traitement d'un formulaire par un xmlgram. Ce que je n'avais pas vu c'est que ce xmlgram avait bien un xsl (je ne l'avais pas trouvé dans son répertoire, parce qu'il était en fait situé un niveau plus haut :-( ).
    Donc, j'ai maté ce xsl, et en effet, on appelle pas xslcage.
    Tu dois avoir raison, il doit y avoir un composant qui le nécessite. Je vais voir de ce côté-ci et tâcher de définir ma variable là-dedans.

    Merci beaucoup pour l'explication !!

    Bonne journée.

  6. #6
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Ca marche ! Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec script d'upload : variables indéfinies
    Par wilikev dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 17/10/2007, 12h26
  2. [Tableaux] Variable indéfinie
    Par skulled dans le forum Langage
    Réponses: 11
    Dernier message: 22/05/2007, 10h00
  3. Tester une variable indéfini.
    Par fredppp dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 16/05/2007, 12h23
  4. [Tableaux] Problème de variables indéfinies
    Par domux dans le forum Langage
    Réponses: 2
    Dernier message: 26/04/2007, 17h19
  5. Variable indéfinie
    Par Empty_body dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 09/03/2006, 11h23

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