PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → popup
popup
Débuté par jean-marie, 11 déc. 2017 16:51 - 8 réponses
Posté le 11 décembre 2017 - 16:51
bonjour,

dans une fenetre awp j'ai créé un bouton :

en code navigateur il affiche une popup (qui sert à identifier l'internaute)
puis immédiatement aprés il lance une procédure ajax (pour lire une data qui dépend de l'identifiant)

voilà ce qui se passe :
- la popup s'affiche sans que j'ai la main
- le code ajax s'exécute
- la main m'est rendue sur la popup (trop tard pour mon code ajax)

alors que je souhaite
- avoir la main sur la popup
- remplir mes champs
- lancer le code ajax

qu'ai je loupé ?
merci pour votre aide

j marie
Membre enregistré
382 messages
Popularité : +18 (22 votes)
Posté le 12 décembre 2017 - 08:12
Bonjour,

Comment avez-vous coder ? Est-ce bien un bouton navigateur et non serveur ?
Il nous manque plein des détails pouvant déterminer la cause de votre soucis.

Cordialement,
Posté le 12 décembre 2017 - 08:41
bonjour,

il s'agit d'un bouton.
dans le code navigateur de ce dernier :

si AJAXEXECUTE(pg_suisjeconnecté) = faux alors
POPUPAFFICHE(popup_identification)
fin
AJAXEXECUTE(ps_ajouteraupanier,qte)


pg_suisjeconecté est une procédure globale ajax qui renvoie vrai ou faux.
ps_ajouteaupanier est une procédure serveur locale ajax qui met à jour un fichier (avec identifiant donc...)

merci pour votre aide
j m
Membre enregistré
382 messages
Popularité : +18 (22 votes)
Posté le 12 décembre 2017 - 12:06
Vous faites appel a cette procédure
AJAXExecute(ps_ajouteraupanier,qte)

Juste après votre appel a la popup. C'est une procédure synchrone. Elle vous bloquera la page le temps de son exécution.

Soit, vous la mettez Asynchrone, soit vous l'appelez avant l'appel de la popup.
Posté le 12 décembre 2017 - 14:15
bonjour,

je ne peux mettre ma procédure ajax (ps_ajouteaupanier) AVANT la popup car j'ai besoin de l'identifiant fourni par la popup.
ps_ajouteaupanier doit TOUJOURS être exécuté aprés le popup.
donc j'en reviens à mon point de départ : comment le faire ?

bonne journée
j m
Membre enregistré
382 messages
Popularité : +18 (22 votes)
Posté le 12 décembre 2017 - 15:05
Faites en un
AJAXExécuteAsynchrone(ps_ajouteraupanier,qte)
Posté le 12 décembre 2017 - 16:17
et ou mets-je la popup ?
Posté le 12 décembre 2017 - 16:34
Salut Jean Marie :-)

je ne suis pas certain de comprendre ce que tu veux faire mais ne peux-tu pas mettre ton AJAXEXECUTE(ps_ajouteraupanier,qte) dans le SINON :

SI AJAXExecute(pg_suisjeconnecté) = Faux ALORS
PopupAffiche(popup_identification)
FIN
AJAXExecute(ps_ajouteraupanier,qte)


devient

SI AJAXExecute(pg_suisjeconnecté) = Faux ALORS
PopupAffiche(popup_identification)
SINON
AJAXExecute(ps_ajouteraupanier,qte)
FIN


Si tu n'es pas connecté, la popup s'ouvre avec le formulaire d'identification, lorsque l'internaute valide son identification tu appelle ps_ajouteraupanier directement depuis le bouton de validation de l'identification.

Si tu es déjà connecté, j'imagine que tu as déjà stocké l'identifiant dont tu as besoin ? Tu peux donc directement appeler ps_ajouteraupanier

Cordialement
Posté le 13 décembre 2017 - 10:54
Bonjour,

merci pour tes réponses.
on en est arrivé aux même conclusions et ce que tu me proposes est exactement ce que j'ai déjà fait hier après midi.
encore merci pour ta collaboration.
jm