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 :

ordonnancement entre xmlService


Sujet :

XMLRAD

  1. #1
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 130
    Points : 58
    Points
    58
    Par défaut ordonnancement entre xmlService
    Bonjour,

    j'ai un formulaire dans lequel se trouve une liste déroulante permettant de sélectionner un mois et une année. Dans cette même page se trouve un autre formulaire avec 2 champs input 'date'. Ces champs peuvent être alimentés via un popup calendrier activé à l'aide de fonction javascript. Ce popup calendrier est un xmlservice à part entière que j'ai développé.

    Ce calendrier se positionne à une date en fonction du champ ' mois - année ' selectionné dans le premier formulaire. Mon pb est qu'un utilisateur peut sélectionner un champ 'mois - année ', activer le formulaire et activer dans la foulée le calendrier avant d'avoir reçu la réponse du premier formulaire, ce qui fait qu'il n'y a plus correlation entre les 2.

    En résumé, comment interdire de cliquer sur un lien tant que la page n'est pas totalement affichée ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 85
    Points : 99
    Points
    99
    Par défaut
    Je pense que tu peux mettre un champ caché dans ton formulaire "calendar_enabled" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="calendar_enabled" value="0">
    Ensuite, tu vérifies si ce champ a pour valeur "1" pour pouvoir lancer tes calendriers. Tu auras initialisé ce champ à "1" à la fin que ton formulaire est fini d'etre loadé.. Tu vois à peu près ce que je veux dire ?

    Ca demande des connaissances en JavaScript. Rien de plus...
    Julien C.

  3. #3
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 130
    Points : 58
    Points
    58
    Par défaut
    merci j'essaie de suite. Tu avais répondu aussi à mon post précédent (sur la mise en cache) . J'ai répondu à la question que tu m'avais posé (cad delphi). Sous entend tu qu'il faut coder en script et non en Delphi pour que cela fonctionne ?

  4. #4
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 130
    Points : 58
    Points
    58
    Par défaut
    j'ai mis en application ton idée et j'ai un petit soucis. voici le code généré
    La fonction javascript qui appelle le calendrier si le flag est positionné à 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script language="javascript">function OpenCal() { var vchamp=arguments[0]; if (document.SelectMois.calendar_enabled.value=="1")
      { WCal=window.open('/GestAbsBin/GestAbs.dll/calendrier?PDate=01/05/2003&Select=E&Champ=' + vchamp,'', 'fullscreen=no,directories=no,left=250,top=560,width=230,height=110,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no,titlebar=no','');
      WCal.focus();} else { alert("Veuillez attendre la fin du chargement de la page...") }
    }</script>
    L'initialisation du flag dans l'évènement onload
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body background="/SharedPortal/Skins/msnblue/background.gif" onload="document.SelectMois.calendar_enabled.value = 1;"><!--XMLC_INSERT_COMMENTS-->
    l'appel dela fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" name="DATEDEB" value="" size="10"><a onclick="OpenCal('MainForm.DATEDEB');"
    déclaration du flag
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="calendar_enabled" type="hidden" value="0">
    Le pb est que calendar_enabled est tous le temps positionné à 1 même qd la page n'est pas totalement chargée.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 85
    Points : 99
    Points
    99
    Par défaut
    A quel moment veux tu que le champ "calendar_enabled" soit initialisé à 1 ? Une fois que ta page soit loadée ? Dans ce cas, tu peux faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script language="javascript">
      document.SelectMois.calendar_enabled.value = '1';
    </script>
    Au lieu de mettre ca dans le Onload de ton body, mets ce script tout en bas de ta page... A noter que moi je rajoute des quotes autour de la valeur 1 dans le javascript. En effet, le champ calendar_enabled est un champ caché, et il prend comme valeur un string...

    Tiens moi au courant.. A+
    Julien C.

  6. #6
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 130
    Points : 58
    Points
    58
    Par défaut
    ...ça marche pas...J'ai l'initialisation du champ caché tout en bas, j'ai même essayé après la balise html . IL s'initialise trop vite . Par contre si j'enlève l'initialisation à 1, j'ai bien mon alerte qui est activée ce qui démontre bien que l'initialisation fonctionne . Question : à la soumission du formulaire est ce que l'initialisation à zero fonctionne ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 85
    Points : 99
    Points
    99
    Par défaut
    Ah attends... J'viens de relire ton tout 1er post.. Tu dis, que tu as un premier formulaire, qui contient la date de base pour ton calendrier qui fait partie, lui, du 2nd formulaire... Et t'as dis :

    Mon pb est qu'un utilisateur peut sélectionner un champ 'mois - année ', activer le formulaire et activer dans la foulée le calendrier avant d'avoir reçu la réponse du premier formulaire, ce qui fait qu'il n'y a plus correlation entre les 2.
    En fait, quelle est la cinématique exacte ? Car là il doit y avoir un truc que j'ai pas suivi..
    Julien C.

  8. #8
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 130
    Points : 58
    Points
    58
    Par défaut
    il y a 3 formulaire à la suite comme cela

    <form name = selectGRP action = même page>
    <form name = SelectMois action = même page>
    <form name = MainForm action = autre page <input type="text" name="DATEDEB" value="" size="10"><a onclick="OpenCal('MainForm.DATEDEB');" </form>

    Voici un rapide résumé de la cinématique. Le premier formulaire dont je parlais dans le premier message est SelectMois. Le troisiéme formulaire contient 2 champs date qui sont alimentés via un popup calendrier , mais les données de ce popup dépendent d'un champ select du formulaire SelectMois. Le problème est que l'on peut activer le popup après avoir soumis le formulaire SelectMois sans attendre que celui çi est renvoyé sa réponse.

    j'ai refait des tests en activant une alerte javascript dans l'évènement onLoad du body et en effet la fenêtre ne s'affiche que lorsque la page est totalement chargée. Par contre si j'initialise mon flag calendar_enabled au même endroit , ça ne me donne pas le résultat escompté et tout se passe comme si l'initialisation se faisait avant que le chargement soit effectif pour l'utilisateur ????

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 85
    Points : 99
    Points
    99
    Par défaut
    Tu dis que l'on submit le formulaire SelectMois en 1er. On attend la réponse, et ensuite une fois que t'as obtenu la réponse, tu veux active le calendrier ? En fait quand tu post ton formulaire SelectMois, tu reload la page ? Si c'est ca, quand tu valides ton formulaires SelectMois, tu changes la valeur de ton champ caché "calendar_enabled" à "0". comme ca, s'il tente de cliquer avant d'avoir recu la réponse, ton action verra que le champ est à 0 et ne déclenchera pas l'action..
    Julien C.

  10. #10
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 130
    Points : 58
    Points
    58
    Par défaut
    ça y est ça marche ! En fait il faut forcer la réinitialisation du champ hidden 'enabled_calendar' à zero avnt la soumission du formulaire selectmois. Je pensais que l'initialisation par l'attribut value du champ hidden suffisait mais apparement si le champ contient déjà une valeur l'initialisation ne se fait pas . Par conséquent il faut forcer cette valeur par du code javascript...bizarre....

    En tout cas merci pour ton aide

Discussions similaires

  1. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  2. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  3. [réseaux] Bench en Perl pour avoir le débit entre 2 pc
    Par Frich dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 22/05/2002, 17h22
  4. Réponses: 3
    Dernier message: 07/05/2002, 16h06
  5. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05

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