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

JavaScript Discussion :

Liste AJAX : faire passer une variable javascript en globale


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2018
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 300
    Par défaut Liste AJAX : faire passer une variable javascript en globale
    Bonjour,
    J'utilise une liste ajax qui fonctionne comme ceci : https://www.w3schools.com/xml/tryit....yajax_database
    Je voudrai passer une variable javascript en mode globale, utilisable partout sur l'intégralité de mon site (one page website), à plusieurs reprises, dans des inputs et dans des requêtes SQL.
    Merci d'avance,

    Zarkoffe

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    soit tu la déclares en amont sur ta page soit tu la déclares avec window.mavarname
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2018
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 300
    Par défaut
    Merci pour ta réponse.
    Bon je ne peux pas la déclarer en amont, car cette variable est en faite la variable sélectionnée par ma liste AJAX, donc obligé de passer par la sortie de mon AJAX.
    Comment utiliser ma variable dans mes requêtes SQL?
    Ci-dessous ma variable globale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                //global variable nom du client que he choppe depuis un input et que je mets dans une fonction
                var varsociete = $( "#client_societe" ).val();
                iencli();
                function iencli() {
                document.getElementById("client").innerHTML = varsociete; 
                }
    Je voudrai quelque chose de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $recup_messages = $bdd->query("SELECT * from action WHERE action_client = client");
    Sauf que "client" ici devrait être ma variable javascript varsociete (ça s'utilise comment <p id="client"></p je sais bien, mais là je veux chopper ma variable et la mettre dans ma requête SQL).
    Comment intégrer ma variable dans ma requête?

    Merci d'avance

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $recup_messages = $bdd->query("SELECT * from action WHERE action_client =" + varsociete + ");
    Ou je n'ai pas compris la question
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre éclairé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2018
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 300
    Par défaut
    Merci pour ta réponse,
    Oui ça devrait être un truc comme ça. Ce que je trouve bizarre, c'est que mon IDE (visual studio code) le laisse en blanc, comme si il comprenait pas ce que c'était.
    Mais le plus génant, c'est l'affichage :
    Nom : facture.png
Affichages : 1441
Taille : 54,8 Ko

    Ma requête complète :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $recup_messages = $bdd->query("SELECT facture_ref, facture_date, facture_fournisseur, facture_produit, facture_quantite,
    facture_montant, client_id, client_societe FROM facture, client WHERE client_societe = "+ varsociete +" ORDER by facture_date DESC");
    client_societe est bien le nom de ville sur lequel "varsociete" doit se mettre à filtrer.
    Il y a une contrainte entre facture_contact et client_id.

    Si quelqu'un a une idée.. merci!

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $recup_messages = $bdd->query(
    tu es coté php serveur
    ou js client ????
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre éclairé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2018
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 300
    Par défaut Rendre variable JS dispo sur tout le site
    Bonjour,
    J'aimerai rendre une variable js disponible sur tout mon site (un One Page Website).
    Cette variable doit être actualisé à chaque chargement d'une liste AJAX. Voici donc ce que j'ai fais:
    Code html : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php require_once('construire.php') ;  ?>
     
    <div class="container">
    <!-- code qui va appeler mon php -->
    <script>
    function ficheclient(str) {
        if (str == "") {
            document.getElementById("txtHint").innerHTML = "";
            return;
        } else {
            var xmlhttp;
            if (window.XMLHttpRequest) {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            } else {
                // code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                    document.getElementById("txtHint").innerHTML = this.responseText;
     
                //ici j'ai ma variable que je récupère depuis un input (elle y arrive bien, j'ai verif via un console log)
                var varsociete = $( "#client_societe" ).val();
                     }                         
                }
     
            };
            xmlhttp.open("GET","getuser.php?q="+str,true);
            xmlhttp.send();
        }
    }
    </script>
     
     
    <div id="txtHint">
        <div class="alert alert-info">
            <strong>Info:</strong> La fiche client va être chargée ici une fois une fois que vous aurez sélectionné votre client.
        </div>
    </div>
     
     
    <?php include '../Include/footer.php' ; ?>
        </body>
      </html>

    Je souhaiterai ensuite l'utiliser à 30 endroits différents de mon site, dont la majorité du temps dans des requêtes SQL.
    Donc quand je fais tourner ma liste AJAX, il faut que mes requêtes SQL s'actualisent en fonction de ma variable "varsociete".
    Exemple de requête:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php include '../../Include/connection.php' ; 
     
    $varsociete = $_GET["varsociete"];
    echo $varsociete;
     
    $messages = array();
     
    $recup_messages = $bdd->query("SELECT facture_ref, facture_date, facture_fournisseur, facture_produit, facture_quantite,
    facture_montant FROM facture WHERE facture_societe = ".$varsociete ." ORDER by facture_date DESC");
     
    //la suite est un tableau (il n'est pas utile que je vous le mette ici, sauf si vous le voulez vraiment

    Mon soucis vient donc du : comment récupérer ma variable? Comment la récupérer d'une manière aussi simple que les variables sessions en PHP?
    Faut-il que je me tourne vers ceci : https://www.w3schools.com/jsref/tryi...n_localstorage ?
    Merci d'avance!

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2019
    Messages : 9
    Par défaut
    Bonjour

    Quand tu dis "récupérer ma variable", tu veux dire que tu veux y avoir accès dans toutes tes fonction javascript ?
    Et tu travaille en single page (sans rechargement de page) ? Dans ce cas tu peux utiliser une variable myVar globale ou window.myVar

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    myVar = null;
    // ou
    window.myVar = null;
    Tu peux aussi utiliser le localstorage pour un stockage persistant, mais ce n'est peut-être pas nécéssaire dans ton cas

  9. #9
    Membre éclairé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2018
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 300
    Par défaut
    Merci pour ta réponse!
    D'accord donc ma variable devrait déjà être présente partout.
    Comment intégrer cela à mes requêtes SQL?
    Comme tu peux le voir je passe par un GET et ensuite je l'introduis dans am requête, mais ça ne donne rien...
    Il faut à tout prix que ma requête SQL s'actualise à chaque mouvement de l'AJAX, et cela sur plusieurs pages!

    Comment faire?

    merci

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2019
    Messages : 9
    Par défaut
    Dans ce cas tu dois transmettre ta variable JS au PHP en la passant en paramètre (query param) dans toutes tes requêtes ajax, exactement comme tu le fais avec le paramètre "q" ici : xmlhttp.open("GET","getuser.php?q="+str,true);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    xmlhttp.open("GET","getuser.php?q="+str+"&varsociete="+varsociete,true);
    // et si besoin, encoder le paramètre
    xmlhttp.open("GET","getuser.php?q="+str+"&varsociete="+encodeURIComponent(varsociete),true);

  11. #11
    Membre éclairé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2018
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 300
    Par défaut
    merci pour ta réponse, mais cela ne marche pas : cela bloque ma requête AJAX.
    Je n'ai pas besoin de l'envoyer (ma variable JS), elle est déjà disponible partout sur mon site.

    Ma question, c'est comment la récupérer et l'insérer dans une requête SQL qui sera dynamique!

    Merci!

Discussions similaires

  1. [AJAX] passer une variable javascript dans python
    Par stoner2008 dans le forum AJAX
    Réponses: 2
    Dernier message: 15/05/2012, 15h52
  2. [AJAX] Faire passer une variable AJAX dans autre chose qu'un <div></div>
    Par fixbraun dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/02/2009, 14h34
  3. [AJAX] Faire passer une variable $_FILE par AJAX
    Par Mazike dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/03/2007, 12h22
  4. [Javascript] Passer une variable javascript en param de page
    Par Psykorel dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/04/2006, 15h04
  5. faire passer une variable d'une fct js à une page php
    Par harlock59 dans le forum Langage
    Réponses: 1
    Dernier message: 25/11/2005, 14h41

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