Comment synchroniser des variables automatiquement

Résolu/Fermé
flexi2202 Messages postés 3784 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 30 mars 2024 - Modifié le 25 août 2022 à 15:25
flexi2202 Messages postés 3784 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 30 mars 2024 - 26 août 2022 à 15:06

bonjour a tous

est-il possible de rafraichir des variables l'intérieur d'un form ?

Dans mon bon de commande le total de la commande est mise dans cette variable MonPanier.totalpanier()

ensuite j'utilise cette même variable dans le code ci dessous 

var formu = document.getElementById("formsu");
formu.onclick = function(e){
  e.preventDefault();
var names = document.getElementById("names").value;
  console.log(names);
if (names == 'promotion') {
	document.getElementById("prints").innerHTML = MonPanier.totalpanier();
}
          <label>
<input type="radio" name="promotioncases" id="vert" data-target="30" value="30" />
</label>
<div id="30" class="descendre">
   <span>tu n'as pas de code promo</span>
   <form name="formu" id="formsu">
      Entre ton code promo:   <input type="text" id="names" />
      <input type="button" value=" Valide ton code promo" />
   </form>
   <p id="test"></p>
   <br />
</div>
                         
                       
                   
              
                     
             

Mais je me retrouve confronté a un soucis 

la variable contenue dans le code form ne se mets pas a jour de façon automatique avec l'autre qui sers donc a récupérer la commande 

le seul moyen que j'ai trouvé et que l'utilisateur entre un code et le valide et a ce moment la variable se met a jour 

Donc ma question est de savoir comment je pourrais m'y prendre pour que la variable contenue dans le form MonPanier.totalpanier() soit synchro avec celle qui reçoit la commande 

je pourrais faire un message d'erreur en disant qu 'il doit revalider si les deux variables ne sont pas égale

Mais cela demande encore une manipulation en plus pour l'utilisateur  


  

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
25 août 2022 à 17:09

Bonjour,

Il existe de nombreux "évènements" disponibles en html/javascript .. il n'y a pas que le onclick.

Tu pourrais, par exemple, utiliser le même genre de code sur le "changement" dans un input ou tout autre champ html qui te sert à modifier les quantités ou lors de l'ajout de produit (et/ou la suppression), ou le click sur un bouton radio .. etc..

Il te suffit de regarder ce qui existe ...

Là, tu trouveras toutes les infos necessaires : https://www.google.com/search?q=html+javascript+event


1
flexi2202 Messages postés 3784 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 30 mars 2024 179
25 août 2022 à 19:32

bonjour jordane 

Merci pour la réponse

Merci aussi pour le lien 

Mais serait-il possible  que lorsque la variable MonPanier.totalpanier() change ,que toutes les  variables dans le form soient mise a jour

j'ai essaye de trouver des exemples mais sans succès 

0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > flexi2202 Messages postés 3784 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 30 mars 2024
25 août 2022 à 20:15

Alors.. déjà ...  MonPanier.totalpanier()  n'est pas une variable.

MonPanier est une variable ( de type "objet" )  et totalpanier()  est une méthode de cet objet ( une fonction qui traites des données et retourne la somme ( le montant total) de ton panier

A la limite, tu peux très bien, dans cette fonction ajouter des instructions pour en faire ce que tu veux .. y compris mettre à jour les données de ton formulaire.

Mais à mon avis.. c'est plus dans la méthode d'ajout au panier qu'il faut placer ce traitement.. afin que, dès qu'un produit est ajouté ou retiré .. il affiche en temps réel les informations de ton panier.

1
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > flexi2202 Messages postés 3784 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 30 mars 2024
25 août 2022 à 22:14

Il semble qu'il suffise de modifier le code de la fonction 

savepanier();

puisque cette dernière est appelée dans chacune des fonctions d'ajout/suppression de produit

1
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > flexi2202 Messages postés 3784 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 30 mars 2024
25 août 2022 à 23:08

Dans le FORM .. il est indiqué le montant ?

Il suffit de cibler cet élément... et d'y mettre le montant de 

MonPanier.totalpanier() 

Dans le genre : 

document.getElementById("prints").innerHTML = MonPanier.totalpanier();
1
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > flexi2202 Messages postés 3784 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 30 mars 2024
25 août 2022 à 23:28

Non ! Ce n'est pas ce que tu fais...

Je te dis de mettre, juste cette instruction directement dans la fonction savepanier ...

Comme ça, à chaque ajout ou retrait de produit ça mettra automatiquement à jour l'information dans ton formulaire... ce 'n'est pas compliqué à comprendre... Si ?

1