|
passage de variable du navigateur au serveur |
Débuté par tamerlan07, 23 oct. 2013 20:59 - 11 réponses |
| |
| | | |
|
| |
Posté le 23 octobre 2013 - 20:59 |
Bonsoir,
N'arrivant pas à afficher la valeur d'une variable globale dans le code d'un bouton cliquable coté serveur pour l'utiliser comme paramètre lors que j'ouvre une nouvelle page , j'ai pensé à un transfert de variable depuis le navigateur mais je n'arrive pas
Ce que je veux faire c'est récupérer le nom d'un utilisateur et lorsqu'il clique sur une image cliquable , je puisse récupérer son nom pour pouvoir le manipuler dans une autre page
auriez vous des solutions à mon problème ?
merci
Bien à vous |
| |
| |
| | | |
|
| | |
| |
Posté le 24 octobre 2013 - 11:35 |
Bonjour,
Essayez de passer par une variable globale au projet ou si cella ne fonctionne pas, passez par un champ de saisie invisible dans la page, que vous le remplissez au préalable ( à chaque affichage de la page ou autre traitement) . Ensuite vous passez en paramètre de la page suivante le contenu du champ du saisie.
Cdlt |
| |
| |
| | | |
|
| | |
| |
Posté le 24 octobre 2013 - 13:48 |
Bonjour Victor
Merci bien pour la réponse mais justement la variable globale au projet je l'ai utilisé mais dans le code serveur cette variable que je déclare ainsi
ResNom est une chaîne
Ensuite quand l’utilisateur via à un champ de saisie encode son nom , je fais ResNom = SAI_NOM , le problème c'est que du coté serveur ResNom est vide
Or j'aimerai bien mettre un message de Bienvenue + Nom sur toutes les pages et sachant que pour passer de page en page en SITE php via le PageAffiche, on doit le faire coté serveur , je ne vois pas comment
Pour ce qui est de la deuxieme solution , j'avais essayé auparavant mais malheureusement le champs de saisie est constamment vide aussi , à moins que je fasse mal la chose
pourriez vous m'expliquez la chose par étape svp , je suis vraiment débutant
Merci encore |
| |
| |
| | | |
|
| | |
| |
Posté le 24 octobre 2013 - 14:51 |
Bonjour Georges
voila comment ca fonctionne: - le navigateur et le serveur sont sur deux ordi séparés - ils ne se parlent pas souvent - quand le coté serveur envoit une page au navigateur, les variables gloables et leur valeurs sont envoyées aussi - par contre, quand le navigateur "parle" au serveur (et la je parle d'un clic sur un bouton de type SUBMIT), il envoit au serveur le contenu des CHAMPS, pas des variables (c'est une norme web)...
Pour compliquer la chose, il y a possibilité d'utiliser ajax, mais si tu es vraiment débutant, ne compliquons pas
Donc, dans ton cas, au lieu de mettre la valeur dans une variable globale du coté navigateur, tu la mets dans un CHAMPS (invisible) puis, quand l'utilisateur CLIQUE sur un bouton (que tu as paramétré comme étant de type submit) le contenu de ce champ arrive au serveur ou tu peux, dans ton code, mettre la valeur dans la variable globale
Bienvenue dans le monde merveilleux du développement web
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com
On 10/24/2013 5:48 AM, Gorges Henry wrote:
Bonjour Victor
Merci bien pour la réponse mais justement la variable globale au projet je l'ai utilisé mais dans le code serveur cette variable que je déclare ainsi
ResNom est une chaîne
Ensuite quand l’utilisateur via à un champ de saisie encode son nom , je fais ResNom = SAI_NOM , le problème c'est que du coté serveur ResNom est vide
Or j'aimerai bien mettre un message de Bienvenue + Nom sur toutes les pages et sachant que pour passer de page en page en SITE php via le PageAffiche, on doit le faire coté serveur , je ne vois pas comment
Pour ce qui est de la deuxieme solution , j'avais essayé auparavant mais malheureusement le champs de saisie est constamment vide aussi , à moins que je fasse mal la chose
pourriez vous m'expliquez la chose par étape svp , je suis vraiment débutant
Merci encore |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 603 messages |
|
Posté le 24 octobre 2013 - 14:51 |
Il faut bien spécifier dans le code d'ini du projet: GLOBAL ResNom est une chaine
puis exécuter ResNom = SAI_NOM en code serveur
Cordialement François |
| |
| |
| | | |
|
| | |
| |
Posté le 24 octobre 2013 - 18:01 |
@ François
Merci pour la réponse
mais voilà le message que j'obtiens quand même : "les modifications effectuées sur ces variables globales en code navigateur ne sont pas reportées sur le serveur."
@Fabrice
Merci pour l'accueil Alors j'ai fait exactement ce que tu m'as dit mais c'est toujours vide , franchement j'ai du mal , je ne comprends pas... Je te montre mon code pour que tu puisses voir ce que j'ai fait
1 ETAPE
Une fenêtre de dialogue s'ouvre pour que l'utilisateur puisse encoder son login et son mdp , ensuite via AjaxExecute , je récupérer , son prénom dans la base de données voila le code dans la partie navigateur du onclick du bouton connexion
ResLogin est une chaîne = AJAXExécute(VerifierLogin,SAI_username,SAI_password);
SELON sResLogin CAS "ok" : Info("Connexion réussie"); CelluleFermeDialogue(CELL_Boite_Connexion); MAP_SansNom1..Visible = Faux MAP_Deco..Visible= Vrai SAI_ChampInvisible= AJAXExécute(RecupPrenom,SAI_username,SAI_password); LIB_Bienvenue..Visible=Vrai LIB_Bienvenue = "Bienvenue " + SAI_ChampInvisible CELL_Evaluation1..Visible=Vrai ResAsupprimer est une chaîne = AJAXExécute(Asupprimer,SAI_username); i est un entier i=ListeCherche(COMBO_Infirmiers,ResAsupprimer); ListeSupprime(COMBO_Infirmiers,i); RETOUR AUTRE CAS Info("Connexion impossible,verifiez vos données"); RETOUR FIN
Dans clic du bouton coté serveur PHP
ResPrenom=SAI_ChampInvisible
2 ETAPE
Dans mon image clic , coté serveur PHP , j'aimerai voir ce qu'il y a dans ResPrenom via Info(gsResPrenom) , et c'est là que ça cloche , c'est vide
En attendant vivement ta réponse
Merci |
| |
| |
| | | |
|
| | |
| |
Posté le 24 octobre 2013 - 18:07 |
Pour info j'ai essayé d'afficher directement le champ invisible mais là toujours je n'ai aucune valeur dans ma box info |
| |
| |
| | | |
|
| | |
| |
Posté le 25 octobre 2013 - 09:56 |
Bonjour,
Alors, sur mon site php je fais le suivant: Etape 1: code du projet ( pas de la page), dans l'Initialisation d'une session PHP je déclare une variable globale :
gsNomClient est une chaine
Etape 2: dans le bouton click "connexion" de ton formulaire de connexion. dans le code NAVIGATEUR: // Contrôle le login et mot de passe SELON Val(AJAXExécute(bCheckConection, SAI_Login, SAI_Mot_de_passe)) CAS 0 // Fail login Erreur("Le login saisi est incorrect","Veuillez le vérifier") RepriseSaisie(SAI_Login) // Le mot de passe saisi est incorrect CAS -1 // fail mdp Erreur("Le mot de passe saisi est incorrect","Veuillez le vérifier") SAI_Mot_de_passe = "" RepriseSaisie(SAI_Mot_de_passe) // Le login et le mot de passe sont corrects AUTRE CAS // C'est OK FIN
le code de la procédure locale bCheckConection( note: il faut activer ajax )
PROCEDURE bCheckConection(sLogin, sMotPasse)
HLitRecherchePremier(Client, Login, sLogin) SI PAS HTrouve(Client) ALORS // le login n'existe pas RENVOYER 0 FIN // Le client a été trouvé // verification du mdp SI Client.MotDePasse = sMotPasse ALORS //le login et le mdp sont ok RENVOYER 1 SINON // fail mdp RENVOYER -1 FIN
dans le code SERVEUR du bouton connexion:
HLitRecherchePremier(Client,Login,SAI_Login) //On met à jour la variable globale SI Htrouve(Client) ALORS gSNomClient = Client.NomClient FIN //On affecte à la lib la valeur de la var globale LIB_nom_client="Bienvenue "+ gSNomClient //on affiche la page suivante PageAffiche(PAGE_suivante)
ETAPE 3: Dans le code serveur de ton model du page, dans la partie "A chaque Affichage de PAGEMOD_MAPAGE" tu rajoute bien évidement l'affectation à la lib (si t'as pas de model de page tu copie colle dans chaque page la ligne suivante. C'est pratique le model de page, hein )
LIB_nom_client = "Bienvenue "+ gSNomClient
Je viens de faire la manip et pour moi cella fonctionne.
Comme les gars l'ont dit, ton bouton de connexion doit etre de type submit pour envoyer bien les valeurs des tes variables , champs au serv, pour qu'il soit au courant.
Cdlt |
| |
| |
| | | |
|
| | |
| |
Posté le 25 octobre 2013 - 14:31 |
@Victor j'ai fait ce que vous m'avez dit mais là j'ai un autre problème qui survient c'est que je ne peux pas exécuter le code du bouton coté serveur , il ne le fait que coté navigateur , c'est étrange parce que j'ai bien précisé dans l'edit de l'action que je voulais que ce soit le code du coté serveur qui devait s’exécuter lors du clik , je ne comprends pas déjà pourquoi il arrive à l’exécuter coté navigateur ?
merci |
| |
| |
| | | |
|
| | |
| |
Posté le 25 octobre 2013 - 14:38 |
En fait il n'arrive à exécuter le code du clik coté serveur seulement si il n y a rien coté navigateur |
| |
| |
| | | |
|
| | |
| |
Posté le 25 octobre 2013 - 14:49 |
Bonjour
désolé, mais tu viens de dégainer ma kryptonite: PHP...
je n'utilise absolument pas ce mode (et je ne veux pas l'utiliser)... aucun avantage, tous les inconvénients...
Bon courage
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com
On 10/24/2013 10:01 AM, Gorges Henry wrote:
@ François Merci pour la réponse mais voilà le message que j'obtiens quand même : "les modifications effectuées sur ces variables globales en code navigateur ne sont pas reportées sur le serveur." @Fabrice Merci pour l'accueil Alors j'ai fait exactement ce que tu m'as dit mais c'est toujours vide , franchement j'ai du mal , je ne comprends pas... Je te montre mon code pour que tu puisses voir ce que j'ai fait 1 ETAPE Une fenêtre de dialogue s'ouvre pour que l'utilisateur puisse encoder son login et son mdp , ensuite via AjaxExecute , je récupérer , son prénom dans la base de données voila le code dans la partie navigateur du onclick du bouton connexion ResLogin est une chaîne = AJAXExécute(VerifierLogin,SAI_username,SAI_password); SELON sResLogin CAS "ok" : Info("Connexion réussie"); CelluleFermeDialogue(CELL_Boite_Connexion); MAP_SansNom1..Visible = Faux MAP_Deco..Visible= Vrai SAI_ChampInvisible= AJAXExécute(RecupPrenom,SAI_username,SAI_password); LIB_Bienvenue..Visible=Vrai LIB_Bienvenue = "Bienvenue " + SAI_ChampInvisible CELL_Evaluation1..Visible=Vrai ResAsupprimer est une chaîne = AJAXExécute(Asupprimer,SAI_username); i est un entier i=ListeCherche(COMBO_Infirmiers,ResAsupprimer); ListeSupprime(COMBO_Infirmiers,i); RETOUR AUTRE CAS Info("Connexion impossible,verifiez vos données"); RETOUR FIN Dans clic du bouton coté serveur PHP ResPrenom=SAI_ChampInvisible 2 ETAPE Dans mon image clic , coté serveur PHP , j'aimerai voir ce qu'il y a dans ResPrenom via Info(gsResPrenom) , et c'est là que ça cloche , c'est vide En attendant vivement ta réponse Merci |
| |
| |
| | | |
|
| | |
| |
Posté le 25 octobre 2013 - 15:36 |
Finalement ça fonctionne , c'était une erreur dans mon code navigateur qui empechait le code serveur de s'exeuter , merci pour tout Victor
@Fabrice
Pas grave , merci quand même |
| |
| |
| | | |
|
| | | | |
| | |
|