Partage
  • Partager sur Facebook
  • Partager sur Twitter

Variable JS dispo partout (AJAX)

Anonyme
    13 février 2019 à 16:34:15

    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:

    <?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:

    <?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!


    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2019 à 16:53:46

      Tu veux pouvoir utiliser ta variable en permanence coté serveur ? coté client ? les deux ?
      • Partager sur Facebook
      • Partager sur Twitter

      Call me Spaceman

      Anonyme
        13 février 2019 à 17:09:16

        Merci pour ta réponse!

        Côté client bien sûr, puisque je ne recharge pas ma page et que je veux utiliser ma variable qui est actualisé dans ma liste AJAX

        Seulement comment faire mes requêtes SQL dynamiquement?

        merci d'avance

        -
        Edité par Anonyme 13 février 2019 à 17:09:50

        • Partager sur Facebook
        • Partager sur Twitter
          13 février 2019 à 17:25:26

          Bonjour,

          Tout d'abord, je te conseille très fortement d'utiliser un framework (React, Vuejs ou Angular) ça te faciliteras la vie. Ensuite, tu pourras t'intéresser au concept de store (comme redux ou vuex).

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            13 février 2019 à 17:33:28

            Merci pour ta réponse, mais pour le moment je vais chercher à apprendre à le faire par moi-même et comprendre pourquoi cela marche et pourquoi cela ne marche pas.

            Si tu comprends ce qui bloque dans mon code, ou si tu connais une fonction JS/jquery capable de traiter mon problème, je suis preneur.

            PS : concernant l'affichage, j'ai ceci (uniquement l'en-tête de mon tableau):

            Merci

            -
            Edité par Anonyme 13 février 2019 à 17:35:06

            • Partager sur Facebook
            • Partager sur Twitter
              13 février 2019 à 20:13:32

              Moi j'utilise les cookies et j'ai pas de problème et c'est très facile à mettre en place
              • Partager sur Facebook
              • Partager sur Twitter

              Call me Spaceman

                14 février 2019 à 10:56:39

                On dit souvent que c'est pas très utile de réinventer la roue. Là c'est carrément un bus que tu veux réinventer.

                https://www.damienflandrin.fr/blog/post/le-scope-des-variables-en-javascript-quest-ce-que-cest pas forcément besoin de local storage ou cookies, ça pourras t'aider.

                • Partager sur Facebook
                • Partager sur Twitter

                Variable JS dispo partout (AJAX)

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown