Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Outils > XMLRAD
XMLRAD Environnement de développement Web XML/XSL. Avant de poster -> F.A.Q XMLRAD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/04/2003, 17h24   #1
Nouveau Membre du Club
 
Inscription : août 2002
Messages : 130
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 130
Points : 25
Points : 25
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 ?
pram est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2003, 19h37   #2
Membre régulier
 
Inscription : janvier 2003
Messages : 85
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 85
Points : 92
Points : 92
Je pense que tu peux mettre un champ caché dans ton formulaire "calendar_enabled" :

Code :
<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.
Julien C. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2003, 10h06   #3
Nouveau Membre du Club
 
Inscription : août 2002
Messages : 130
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 130
Points : 25
Points : 25
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 ?
pram est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2003, 14h51   #4
Nouveau Membre du Club
 
Inscription : août 2002
Messages : 130
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 130
Points : 25
Points : 25
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 :
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 :
<body background="/SharedPortal/Skins/msnblue/background.gif" onload="document.SelectMois.calendar_enabled.value = 1;"><!--XMLC_INSERT_COMMENTS-->
l'appel dela fonction
Code :
1
2
 
<input type="text" name="DATEDEB" value="" size="10"><a onclick="OpenCal('MainForm.DATEDEB');"
déclaration du flag
Code :
<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.
pram est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2003, 15h37   #5
Membre régulier
 
Inscription : janvier 2003
Messages : 85
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 85
Points : 92
Points : 92
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 :
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.
Julien C. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2003, 16h12   #6
Nouveau Membre du Club
 
Inscription : août 2002
Messages : 130
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 130
Points : 25
Points : 25
...ç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 ?
pram est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2003, 16h23   #7
Membre régulier
 
Inscription : janvier 2003
Messages : 85
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 85
Points : 92
Points : 92
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 :

Citation:
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.
Julien C. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2003, 17h20   #8
Nouveau Membre du Club
 
Inscription : août 2002
Messages : 130
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 130
Points : 25
Points : 25
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 ????
pram est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2003, 18h01   #9
Membre régulier
 
Inscription : janvier 2003
Messages : 85
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 85
Points : 92
Points : 92
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.
Julien C. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2003, 09h57   #10
Nouveau Membre du Club
 
Inscription : août 2002
Messages : 130
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 130
Points : 25
Points : 25
ç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
pram est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h19.


 
 
 
 
Partenaires

Hébergement Web