PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Peut-on accéder aux champs d'une page navigateur depuis une classe en code serveur?
Peut-on accéder aux champs d'une page navigateur depuis une classe en code serveur?
Débuté par Freddykong, 26 juin 2017 17:43 - 7 réponses
Membre enregistré
60 messages
Popularité : +4 (4 votes)
Posté le 26 juin 2017 - 17:43
La question est dans le titre, j'aimerai savoir si il est possible d'accéder à un champ du navigateur depuis un code serveur.

Cordialement
Membre enregistré
1 144 messages
Popularité : +50 (142 votes)
Posté le 26 juin 2017 - 17:59
Oui si le code serveur est en AJAX,
Thierry
Membre enregistré
60 messages
Popularité : +4 (4 votes)
Posté le 27 juin 2017 - 09:53
Désolé de vous demander cela mais de mon coté, lorsque je demande le contenue mon champs de saisie, je n'ai aucune valeur de retour, or mon champs n'est pas vide... Auriez-vous un échantillon de code a proposer ?
Membre enregistré
1 623 messages
Popularité : +100 (114 votes)
Posté le 27 juin 2017 - 14:23
Sachant que le champ qui apparait dans le navigateur a été généré par le serveur avant d’être envoyé.. il y a forcément accès.

Vérifier que le bouton qui a demandé l'appel au serveur soit bien mode "submit"




Membre enregistré
60 messages
Popularité : +4 (4 votes)
Posté le 28 juin 2017 - 14:28
Bonjour, il ne s'agit pas de l'approche que je désire effectuer.
Je désire implémenter le design pattern MVP ( en vue passive) ce qui implique que à chaque modification d'un champs, la vue ( ma page) informe la présentation ( une classe ) qu'il y a eu une modification, sans utiliser de boutton. Ceci a été fait sans problème. En revanche la présentation doit "aller" récupérer l'information modifiée, et c'est cela que je souhaites effectuer et qui me pose problème. Car lorsque je souhaites accéder à la valeur du champs, celui-ci me retourne une chaine vide.
Membre enregistré
102 messages
Popularité : +4 (4 votes)
Posté le 30 juin 2017 - 10:41
Bonjour,
Je ne suis pas sûr d'avoir bien compris ton fonctionnement, mais pour envoyer une info du navigateur vers le serveur, j'utilise les fonctions AJAX :
Avec AJAXExécute et AJAXExécuteAsynchrone.

Par contre il faut passer en paramètre le texte saisi ca, ca ne marche pas :
// code de sortie du champ de saisie
AJAXExécute(ajaxActualiseChamps, affichage)

// procédure serveur autorisée en ajax
PROCEDURE affichage
lib_Titre = sai_Saisie //-> pb car le serveur ne lit pas le navigateur

Il faut plutôt faire :
// code de sortie du champ de saisie
AJAXExécute(ajaxActualiseChamps ,affichage, moimeme)

// procédure serveur autorisée en ajax
PROCEDURE affichage(texte)
lib_Titre = texte // le serveur reçoit les infos envoyées par le navigateur

Pour éviter les blocages :
// code touche relachée du champ de saisie
AJAXExécuteAsynchrone(ajaxActualiseChamps, affichageS, affichageN, moimeme)

// procédure serveur autorisée en ajax
PROCEDURE affichageS(texte)
lib_Titre = texte //-> le serveur reçoit les infos envoyées par le navigateur

// procédure navigateur
PROCEDURE affichageN()
...

Est-ce que ca résout le pb ?
Dav.
Membre enregistré
60 messages
Popularité : +4 (4 votes)
Posté le 30 juin 2017 - 11:25
Merci pour cette explication!

Non, cela ne résout pas mon problème, mais confirme mes soupçons: ce que je veux faire n'est pas possible. Tout du moins pas en AJAX.
Je voulais que la page envoie le nom du champs justement et que le code serveur lise le contenu du champs. Si cela avait été possible, on aurait eu un couplage plus faible de la Vue ( la page) envers la présentation.

Si cela t’intéresse, voilà ce que je tente d'achever : https://martinfowler.com/eaaDev/PassiveScreen.html
Membre enregistré
1 144 messages
Popularité : +50 (142 votes)
Posté le 30 juin 2017 - 13:53
Voici le code que j'utilise :
//Procédure Clic du bouton de ma popup avec Ajax Activé :
CELL_Tour.SAI_Tour=COL_NomDuTour
CELL_Tour.SAI_Frequence=COL_NombreDeTour

//code de retour Ajax de mon bouton
PopupFerme()


Résultat, sur ma page appelante mes champs de saisie (CELL_Tour.SAI_Tour...) sont remplis avec les données renvoyée par ma popup.

En utilisant une variable globale il doit être possible de faire la même choses avec deux pages différentes au lieu d'une popup et une page.