8796 sujets

Développement web côté serveur, CMS

Bonjour,
je voudrais multiplier 2 variables envoyées dans un formulaire et afficher le total dans la page qui traite le formulaire et qui affiche les données saisies par l'utilisateur :
$total = $_POST['chiffre1'] * $_POST['chiffre2'];
echo "$total";

Cette syntaxe ne semblae pas marcher.
Merci de votre aide.
Salut,

pour multiplier des variables entre elles il faut être sûr qu'elles sont bien numériques. Tu pourrais essayer :
$total = intval( $_POST['chiffre1'] ) * intval( $_POST['chiffre2'] );
Sinon il faudrait voir le code du formulaire.
Modifié par Heyoan (28 Nov 2008 - 18:47)
Salut
merci de ta réponse. Mais ca ne marche pas.
les données postées dans le formulaire sont dans des champs texte :
<form>
<input type="text" name="chiffre1" value="<?=$_POST[chiffre1]?>" size="4" onchange="calcul()" /><input type="text" name="chiffre2" value="<?=$_POST[chiffre2]?>" size="4" onchange="calcul()" />
</form>

L'appel au javascript calcul() sert à afficher le résultat pour l'utilisateur lors de la saisie.
Hem... essayons de refaire ça au propre (en laissant tomber le Javascript pour l'instant). Smiley langue

Tout d'abord un élément FORM doit posséder un attribut action même si la page de destination est la même. Ensuite si tu veux récupérer des variables POST il faut également renseigner l'attribut method car par défaut ce sera envoyé en GET.

Comme Javascript peut être désactivé il faut ajouter un INPUT de type submit pour être sûr de pouvoir soumettre le formulaire (tu en as peut-être un dans ton code d'origine ?) . En passant on peut en profiter pour rajouter un id ce qui te permettra de récupérer facilement les valeurs en javascript avec document.getElementById('monid').value et du coup on peut même en profiter pour rajouter un LABEL.

Ce qui donne quelque chose comme ça (j'ai remplacé <?= par <?php echo car Wampserver ne reconnaît pas la syntaxe) :
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
	<p>
	<label for="chiffre1">Chiffre 1 :</label>
	<input type="text" name="chiffre1" id="chiffre1" value="<?php echo $_POST['chiffre1'] ?>" size="4" onchange="calcul()" />
	</p>
	<p>
	<label for="chiffre2">Chiffre 2 :</label>
	<input type="text" name="chiffre2" id="chiffre2" value="<?php echo $_POST['chiffre2'] ?>" size="4" onchange="calcul()" />
	</p>
	<p>
	<input type="submit" />
	</p>
</form>

Modifié par Heyoan (01 Dec 2008 - 21:08)