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

ASP Discussion :

Récupérer variables javascript pour mettre dans variables aps 3


Sujet :

ASP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Récupérer variables javascript pour mettre dans variables aps 3
    Bonsoir,

    Je suis un peu inquiêt

    Avec l'aide d'un membre developpez.com, j'ai créé un site HTML qui se compose de javascritp.
    En faisant une recherche dans la FAQ de developpez, je suis tombé là dessus :

    Peut-on utiliser une variabe Javascript en ASP

    La réponse est tout simplement non !
    En effet, javascript est exécuté sur le client, c'est à dire dans le navigateur, et ASP est exécuté sur le serveur. Pour utiliser le contenu d'une variable javascript dans du code ASP, il faut pour cela envoyer ce contenu au serveur, qui va le récupérer et le traiter via du code ASP. Vous avez donc deux solutions : par la méthode GET (lien, formulaire) ou bien la méthode POST.
    Le problème est que mon site crée des variables javascript, j'aurais voulu récupérer les valeurs de ces variables javascript pour les affecter à des variables asp et ainsi enregister ces résultats dans ma base de données.

    Ma question :

    Il n'y a donc pas d'autres moyen que le get ou le post ??

    Si tel est le cas, est-ce dure de mettre cela en oeuvre ?

    Merci d'avance.

    bgs

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Il n'y a donc pas d'autres moyen que le get ou le post ??
    Ben pas trop en fait. Je crois pas.
    Si tel est le cas, est-ce dure de mettre cela en oeuvre ?
    Non, pour soummettre un formulaire en javascript avec la methode POST y'a une fonction submit. Il faut juste récupérer le nom ou l'id du formulaire. Pour le methode GET tu passes tout dans l'URL (window.location)

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut Immobilis,

    Merci pour ta réponse !

    Est-ce que je pourrai récupérer les informations de mon formulaire javascript dans une base de données access ?

    C'est possible ou non ?

    Merci pour ton dévouement journalièrement renouvelé !

    beegees

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Qu'est ce que tu appelles un "formulaire javascript" stp ?

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut PC75,

    Tu peux pas savoir comme je suis heureux de t'entendre !

    Ce n'est pas un formulaire javascript, c'est juste des fonctions qui permettent à des listes déroulantes d'indiquer le nom d'un cours et son nombre de crédits quand celui-ci est choisi dans la liste déroulante.

    Le problème est que ce nombre de crédit et le nom du cours se trouvent dans des variables javascript.

    Je met en attachment la page.

    Et pendant ce temps, j'essaie de la retravailler en ASP, je dois terminer ce travail pour vendredi en 15 au plus tard.

    Merci pour tout !

    bgs

  6. #6
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Je n'ai pas eu le courage de lire toute la page.
    Mais si tu créés des champs de type hidden et que tu les alimentes avec le contenu de tes variables js, tu pourras alors appeler une page asp avec la méthode post et faire une mise à jour dans ta base non ?

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    C'est exactement ce que je pensais au début.

    Ensuite j'ai lu un tas d'articles qui me disait que c'étais impossible de récupérer des données javascript en asp.

    si tu créés des champs de type hidden et que tu les alimentes avec le contenu de tes variables js
    Les champs hidden, ces ont des champs javascript ou ASP ?

    Si tu as le temps, pourrais-tu stp mettre un petit exemple ?

    Merci d'avance.

    bgs

  8. #8
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Un champ hidden est comme in champ de type text, mais il est caché.

    J'essaie de t'expliquer ce à quoi je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <script language="javascript">
    function Maj()
    {
    document.form1.Champ1.value=MaVariableJS1;
    document.form1.Champ2.value=MaVariableJS2;
    document.form1.Champ3.value=MaVariableJS3;
    document.form1.action="PageMaj.asp";
    document.form1.submit();
    }
    </script>
     
    <form name="form1" method="post" id="CI" action="">
    <input type="hidden" name="Champ1">
    <input type="hidden" name="Champ2">
    <input type="hidden" name="Champ3">
    ......
     
    <input type="button" onclick="Maj()">
    .....
    Et dans la page PageMaj.asp, tu pourras faire des request.QueryString pour récupérer tes valeurs et construire tes requêtes SQL de mise à jour.

    Si je ne suis pas assez clair, tu dis.

    A+

  9. #9
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    Voilà, j'ai créé un champs caché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="Champ1" id="Champ1" >
    Voici la nouvelle fonction javascript maj() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	function maj() {
    				t = document.getElementById('CI1');	
    				s = document.getElementById('select4');
    				t.value = nom_matiere[s.options[s.selectedIndex].value];
    				maj_checkbox();
    				maj_checkboxCI1TP();				
    				maj_checkboxCI1EX();
    				document.form1.Champ1.value=t;
    		}
    Pour ce qui est de cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.form1.action="PageMaj.asp";
    J'aimerais plus tôt l'associer à un bouton d'impression, ça je pense que ça ne posera pas de problème.

    Maintenant que j'ai affecter la valeur de la variable javascript au champ caché, je dois créer un page asp.

    Je suis dans la bonne direction ?

    Merci pour ton aide !

    bgs

  10. #10
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    C'est l'idée en effet.
    Dans ta fonction, tu ajoutes ces lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    .....
    document.form1.Champ1.value=t;
    document.form1.action=="PageMaj.asp";
    document.form1.submit();
    Le submit va appeler la page MaPage.asp (que tu dois effectivement créer).
    Et dans cette page, tu peux t'en sortir


    MaPage.asp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <%
    Valeur1 = request.Form("Champ1")
    Valeur2 = request.Form("Champ2")
     
    txtSql = txtSql & "insert into MaTable "
    txtSql = txtSql & "(Chp1, Chp2) "
    txtSql = txtSql & "values ('" & Valeur1 & "', "'" & Valeur2 & "')"
    .....
    Response.Redirect("CI.asp")

  11. #11
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    Merci pour ton code.

    J'ai testé quelques lignes et voici quelques réactions :

    Si je met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.form1.action=="maj_ci.asp";
    document.form1.submit();
    ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function maj() {
    				t = document.getElementById('CI1');	
    				s = document.getElementById('select4');
    				t.value = nom_matiere[s.options[s.selectedIndex].value];
    				maj_checkbox();
    				maj_checkboxCI1TP();				
    				maj_checkboxCI1EX();
    				document.form1.Champ1.value=t;
    		}
    ça donne alors ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function maj() {
    				t = document.getElementById('CI1');	
    				s = document.getElementById('select4');
    				t.value = nom_matiere[s.options[s.selectedIndex].value];
    				maj_checkbox();
    				maj_checkboxCI1TP();				
    				maj_checkboxCI1EX();
    				document.form1.Champ1.value=t;
                                                       document.form1.action=="maj_ci.asp";
                                                       document.form1.submit();
    		}
    Dès qu'on choisi un cours dans la liste déroulante, form1.action=="maj_ci.asp" se met en route sans qu'on puisse chosir si c'est un cours théorique, pratique ou exercice.

    J'ai donc déplacé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.form1.action=="maj_ci.asp";
    document.form1.submit();
    Je l'ai mis ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(c.checked) {		// On test si la checkbox est coché
    				c_val.value = credits[s.options[s.selectedIndex].value];	// Puis on met à jour le input text en récupèrant la valeur de la matière selectionné et en allant cherché le nombre de crédits ECTS dans le tableau credits
    			totalECTSCI1TH = (c_val.value);
    				document.form1.action=="maj_ci.asp";
    				document.form1.submit();
     
    			} else {
    				c_val.value = " ";	// Si la checkbox est décoché on met une chaine vide pour les crédits ECTS.
    			}				
    					}
    Donc dès qu'on coche Théorie, l'action se met en route.

    Quand ma page asp sera complétée par le code, les données viendront dans la db.

    Mais j'ai découvert un hic, c'est quand quand il clique sur la case à cocher, l'action se met en route, il fait (fera) tout ce que le code dit (dira) et redirige vers le site CI.html (je viens de le renommer en CI.html car ça ne sert à rien d'avoir une page asp pour démarrer, sauf peut être pour ne pas voir le code de la page) et là, les données ont dispaures malheureusement.

    Je veux dire par données, les choix du visiteur, c'est à dire le nom du cours, et le nombre de crédit pour ce cours.

    Qu'en penses-tu ?

    Je continue.

    Meric
    bgs

  12. #12
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Je pense à quelque chose PC75,

    On pourrait faire en sorte que la base de données se mette à jour quand le visiteur à appuyer sur le bouton imprimer (submit) (qui se trouve en bas de l'écran) ?

    Cela permettrait au visiteur de choisir à son aise les cours + th , tp ou ex et ensuite en appuyant sur le bouton, on met la base à jour.

    ça pose un problème si il y'a plusieurs cours ?

    Au moin ça résoud le problème des infos qui disparaissent après le redirect...

    Qu'en penses-tu ?

    Merci
    bgs

  13. #13
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Ca me parait être une bonne solution pour que les infos saisies ne disparaissent pas.

    Par contre, quand tu écris :
    ça pose un problème si il y'a plusieurs cours ?
    .

    Il faudrait que tu précises

  14. #14
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    J'ai un petit blem et je cherche depuis quelques dizaines de minutes à le résoudre.

    J'ai testé ton code sur le nom du cours et quand j'appuie sur le bouton submit, j'obtiens [object] à la place du nom du cours.

    Je résûme ce que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function maj() {
    				t = document.getElementById('CI1');	
    				s = document.getElementById('select4');
    				t.value = nom_matiere[s.options[s.selectedIndex].value];
    				maj_checkbox();
    				maj_checkboxCI1TP();				
    				maj_checkboxCI1EX();
    				document.form1.hfCI1.value=t;
    		}
    La champs caché s'appelle hfCI1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="hfCI1" type="hidden" id="hfCI1">
    et ma page asp nommé maj_ci contient ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <body>
    <% 
    dim hfCI1
    dim hfCI1TH
    'dim CI1TP
    'dim CI1EX
    hfCI1 = request.Form("hfCI1")
    response.Write(hfCI1)
    'hfCI1TH = request.form("hfCI1TH")
    'response.Write(hfCI1TH)
    'CI1TP = request.form("CI1TP")
    'response.Write(CI1TP)
    'CI1EX = request.form("CI1EX")
    'response.Write(CI1EX)
     
    'response.Redirect("http://164.15.112.38/pharma.ulb.ac.be/CI/FORMULAIRE/CI.html")
    %>
    Je demande au code asp de récupérer la valeur du hidden field nommé hfCI1 et ensuite de m'afficher sa valeur avec response.write.

    Tu vois quelque chose qui est incorrecte ?

    Merci d'avance.

    bgs

  15. #15
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Que te renvoie les Response.Write ?

    As-tu essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.form1.hfCI1.value=t.value;

  16. #16
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    C'est étrange car j'avais essayé avec t.value et ça fonctionnait pas.

    J'ai alors encore essayé (suite à ton conseil) mais j'ai d'abord fermé le site web et réouvert et là ça fonctionne.

    Donc, merci !

    Par contre je me rends compte qu'il faudra prévoir un end session.

    Ce que je vais faire pour le moment c'est de créer autant de hidden fields que j'ai besoin et ensuite essayer un response.write pour chacun d'entres eux, ensuite j'attaquerai la base de données.

    Je te tiens au courrant pour le reste.

    Merci pour ton dévouement.

    bgs

  17. #17
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Pas de problème.

    A+

  18. #18
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut PC75,

    Comme promis je te tiens au courrant de l'évolution du site.

    Je ne rencontre presque plus de problème (pour l'instant).

    La base de données se remplit bien (sauf qu'elle écrit tout sur la même ligne et efface donc l'enregistrement en cours).

    pour ton aide.

    bgs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer valeur pour mettre dans variable
    Par stylor dans le forum QlikView
    Réponses: 4
    Dernier message: 03/02/2014, 12h19
  2. Réponses: 0
    Dernier message: 27/10/2011, 12h40
  3. [JavaScript] Noeud XSL dans variable Javascript
    Par soli.f dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/04/2007, 12h41
  4. Réponses: 6
    Dernier message: 15/06/2006, 14h07
  5. Réponses: 1
    Dernier message: 19/02/2006, 13h32

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