Page 1 sur 1

Calcul PHP instantané

Posté : 25 août 2017, 19:18
par blinz
Salut tout le monde,
Bon je suis sur un nouveau exercice.
Le but est de calculer de façon instantané une somme sans cliqué sur le moindre bouton ( je pense que du coup ce n'ai pas faisable en PHP mais bon je demande desfois que )

J'ai dans mon formulaire:

// Permet d'ajouter et d'enlever via le + et le moins pour régler la quantité
  <tr>
								<td>
									<span class="pe-7s-gift size-plus">
									<span class="item_cart"> Colis < 10Kg</span>
								</td>
								<td>
									<div class="numbers-row">
										<input type="text" value="0" id="colis10" name="colis10" class="qty2 form-control" value="<?php echo !empty($_POST['colis10']) ? $_POST['colis10'] : NULL;?>"  />
									<div class="inc button_inc">+</div><div class="dec button_inc">-</div>
                                    </div>
								</td>								<td>
									0%
								</td>
								<td>
									<strong>07,00 €</strong>
								</td>
							</tr>

// Par exemple colis10 vaut 07,00 €
J'aimerais que du coup si on met 2 via le plus du formulaire cela affiche automatiquement 14 et ainsi de suite

Merci à vous pour le coup de main

Re: Calcul PHP instantané

Posté : 25 août 2017, 21:26
par @rthur
Bonjour,

Effectivement ce n'est pas du PHP mais du javascript.
Si tu as toutes les données nécessaires à ton calcul dans ta page alors ça peut être du JS uniquement.

Si tu as des données stockées uniquement sur le serveur pour faire ton calcul alors il faut en javascript (ajax) que tu envoies une requête vers un script PHP qui fera le calcul.

Re: Calcul PHP instantané

Posté : 26 août 2017, 16:45
par blinz
Alors j'ai trouvé ce que je voulais et l'ai mis en place en partie sauf un champ qui me pose problème.
sI Je met un input classique pour l'id x c'est à dire :
<input id="x" data-in="" type="text" />
ça marche mais si je met comme moi je souhaite ca ne calcul pas:
<div class="numbers-row">
										<input value="0" id="x" data-in="" name="courier" class="qty2 form-control" type="text" value="<?php echo !empty($_POST['courier']) ? $_POST['courier'] : NULL;?>"  />
									<div class="inc button_inc">+</div><div class="dec button_inc">-</div></div>
Mon script permettant d'éxécuter la multiplication
<script>
var x = document.getElementById("x");
var y = document.getElementById("y");
var d = document.getElementById("d");
var xstored = x.getAttribute("data-in");
var ystored = y.getAttribute("data-in");
setInterval(function(){
    if( x == document.activeElement ){
     var temp = x.value;
     if( xstored != temp ){
       xstored = temp;
       x.setAttribute("data-in",temp)
       calculate();
     }
    }
    if( y == document.activeElement ){
     var temp = y.value;
     if( ystored != temp ){
       ystored = temp;
       y.setAttribute("data-in",temp);
       calculate();
     }
    }
},50);

function calculate(){
 d.innerHTML = x.value * y.value;
}
x.onblur = calculate;
calculate();
</script>

Formulaire:
<form>
<td>
									<div class="numbers-row">
										<input value="0" id="x" data-in="" name="courier" class="qty2 form-control" type="text" value="<?php echo !empty($_POST['courier']) ? $_POST['courier'] : NULL;?>"  />
									<div class="inc button_inc">+</div><div class="dec button_inc">-</div></div>
								</td>
								<td>
                                
									<input id="y" data-in="" value="2" type="text" />
								</td>
								<td>
									<strong><div id="d"></div></strong>
								</td>
</form>