-
25/11/2010 - 12h19 oignon57
PHP: additionner des variables
Bonjour,
j'ai un problème pour additionner des variables dans ma situations.
En fait, je veux additioner des variables issues toutes les deux d'un formulaires.
Je m'explique:
J'ai un formulaire 1 HTML qui demande un nombre (par exemple:
<input type="text" name="donner_un_nombre">) Puis j'envoie cette variable.
Après pour un fichier PHP lié à ce formulaire 1, je récupère le nombre premier entré.
(avec: $chiffre=$_GET["donner_un_nombre"]
Pour l'instant aucun problème mais c'est là que je vais bloquer.
Dans ce même fichier php, j'intègre un formulaire 2 qui a la même fonction que le formulaire 1 à savoir juste demander un nombre.
Toujours avec la même technique et cette valeur sera renvoyer au même fichier php.
Par conséquent, j'ai 2 variables (1 issu du Formulaire 1 et l'autre du Formulaires 2)
Je veux faire leur somme
Comment dois je procéder ?
Si vous avez une autres techniques qui permet d'additionner 2 variables de deux formulaires différents, je suis preneur.
Merci
-
25/11/2010 - 12h45 Faith
Re : PHP: additionner des variables
 Envoyé par oignon57 Je veux faire leur somme
Comment dois je procéder ? Si j'ai bien compris, la saisie des deux nombres se fait séparément:
- saisie chiffre 1
- submit du formulaire
- saisie chiffre 2
- submit du formulaire
Dans ce cas, il existe 2 solutions:
- soit tu rajoutes un champ caché (type="hidden") dans ton second formulaire avec la valeur précédemment saisie.
- soit tu utilises le mécanisme de sessions ( http://www.manuelphp.com/php/function.session-start.php )
Si c'est juste pour une somme, la première solution sera beaucoup plus simple. Pour des traitements plus complexes, préfère la seconde.
-
27/11/2010 - 15h33 oignon57
Re : PHP: additionner des variables
Merci Faith d'avoir répondu.
Je pense utiliser la première méthode, mais je ne connais pas trop "hidden" et son utilisation. (on le met dans l'input ? Cela ne sert qu'à cacher des valeurs ?)
De plus, j'ai eu une "révélation soudaine" sur ce que je devais vraiment faire.
En fait à la base,
si mon $donner un nombre (issu du formulaire1) est supérieur ou égal à un $max(arbitraire)----> alors tout est bien
Sinon TANT QUE (WHILE) $donner un nombre + $nouveau chiffre(issu du formulaire ) n'est pas supérieur ou égal à ce $max, on continu de retaper un nouveau chiffre qui vient s'ajouter dans l'addition
Le problème est que je n'arrive pas à mettre en forme
Voici déjà ce que j'ai fais: Code PHP:
<html>
<body>
<?php
$donner_un_nombre=$_GET['donner_un_nombre'];
$retranchement=$donner_un_nombre-3;
$max=18;
if($donner_un_nombre>$max){echo "Tout est OK";}
else {
echo 'Veuillez ajouter un nombre
<form Method="GET"action="rendu1.php">
<input type="text"name="nouveau_chiffre">
<input type="submit"value="envoyer">Pour envoyer ou
<input type="reset"value="annuler">pour annuler
</form>';
$som=0;
$continuer=true;
while($continuer){
$n=$_GET["som"];
$donner_un_nombre=$nouveau_chiffre+$donner_un_nombre; //J'ai appelé le total $donner_un_nombre comme cela,il subira le test du if
$continuer=$donner_un_nombre<=$max;}
echo $donner;} Qu'en pensez vous ? Où dois je insérer le hidden ?
Dernière modification par Philou67 ; 29/11/2010 à 11h08.
Motif: Balise PHP au lieu de QUOTE
-
27/11/2010 - 15h40 oignon57
Re : PHP: additionner des variables
Un petite erreur, autant pour moi: Code PHP:
<html> <body> <?php $donner_un_nombre=$_GET['donner_un_nombre'];
$retranchement=$donner_un_nomb re-3; $max=18;
if($donner_un_nombre>$max){ech o "Tout est OK";}
else {
echo 'Veuillez ajouter un nombre <form Method="GET"action="rendu1.php "> <input type="text"name="nouveau_chiffre"> <input type="submit"value="envoyer">Pour envoyer ou <input type="reset"value="annuler">pour annuler </form>';
$nouveau_chiffre=0; $continuer=true; while($continuer){
$nouveau_chiffre=$_GET["nouveau_chiffre"]; $donner_un_nombre=$nouveau_chiffre+$donner_un_nombre; //J'ai appelé le total $donner_un_nombre comme cela,il subira le test du if
$continuer=$donner_un_nombre<= $max;} echo $donner;} Qu'en pensez vous ? Où dois je insérer le hidden ?
Dernière modification par Philou67 ; 29/11/2010 à 11h08.
Motif: Balise PHP au lieu de CODE
-
27/11/2010 - 17h53 Faith
Re : PHP: additionner des variables
Hidden et comme un champ de formulaire quelconque (donc à placer entre les balise FORM: Code: <input type="hidden" name="nom_du_champ" value="valeur_du_champ">  Envoyé par oignon57 Qu'en pensez vous ? Qu'il y a une méconnaissance importante du couple php+HTML.
Visiblement, tu as déjà fait un peu de programmation avec un langage "classique", mais il va falloir t'habituer à ce nouveau mode de conception.
Ici, il est impossible de demander en cours d'exécution de script une nouvelle valeur à l'utilisateur: il n'est possible d'obtenir de lui des informations qu'en fin de script (lorsque la totalité de la page est affichée et qu'il clique sur le bouton submit)
Tu ne peux donc pas utiliser un while en espérant qu'à chaque itération l'utilisateur saisisse un nouveau chiffre. Il faut additionner les chiffres 1 par 1, et réafficher la page entière tant que la condition n'est pas terminée.
Normalement, avec le champ hidden, que tu mets à jour à chaque appel, ça devrait être assez facile.
Bonne chance -
27/11/2010 - 19h03 oignon57
Re : PHP: additionner des variables
Merci de votre réponse, au moins je suis fixé (vous m'avez sauvez de longues heures d'énervement )
Sinon, j'ai essayé mais le résultat n'aboutit, je pense que je me suis trompé mais je ne sais comment corriger:
(j'ai dû mettre d'autres noms de variables mais le principe est le même).
Le problème vient je pense de mon addition qui si elle était vrai, voudrait dire que le script m'a attendu pour que je mette ma valeur, ce qui n'est pas possible.
Je crois qu'une subtilité du hidden m'échappe. Code PHP:
<html> <head> <title>Rendu</title> </head> <body> <?php
$paye=$_GET["paye"];
$price=3; $rendu=$paye-$price;
echo "Vous m'avez donné $paye euros";
if($paye>$price){echo " Merci de votre achat, voici votre monnaie $rendu";}
else {echo'Vous n avez pas assez payé:
<form Method="GET"action="rendu1.php"> Votre argent<input type="text"name="paye"> <input type="hidden" name="ajout" value="paye> $paye=$paye+$ajout;
<input type="submit"value="envoyer">Pour envoyer ou <input type="reset"value="annuler">pour annuler </form>'; } ?>
</body> </html> Merci d'avance
Dernière modification par Philou67 ; 29/11/2010 à 11h09.
Motif: Balise PHP au lieu de QUOTE
-
27/11/2010 - 21h27 Faith
Re : PHP: additionner des variables
Plusieurs points:
- le champ action du formulaire: as-tu bien mis le même nom que la page en cours (rendu1.php) ?
- un champ hidden fonctionne comme un champ normal, autrement dit: $_GET["ajout"] pour l'utiliser, et surtout, l'utiliser en début de script, comme tous les champs de formulaire.
- la valeur renseignée pour le champ hidden doit être la valeur de $paye
voilà, ça devrait te permettre d'avancer un peu.
-
28/11/2010 - 03h49 redando
Re : PHP: additionner des variables
il suffit de le maitre dans un session c'est un peu pres comm jee
merci
-
28/11/2010 - 13h52 oignon57
Re : PHP: additionner des variables
Bonjour,
Plusieurs points:
- le champ action du formulaire: as-tu bien mis le même nom que la page en cours (rendu1.php) ?
- un champ hidden fonctionne comme un champ normal, autrement dit: $_GET["ajout"] pour l'utiliser, et surtout, l'utiliser en début de script, comme tous les champs de formulaire.
- la valeur renseignée pour le champ hidden doit être la valeur de $paye
-Oui j'ai bien mis rendu1.php Code PHP:
- <html> <head> <title>Rendu</title> </head> <body> <?php
$paye=$_GET["paye"]; [B]$ajout=$_GET["ajout"];[/B] $price=3; $rendu=$paye-$price;
echo "Vous m'avez donné $paye euros";
if($paye>$price){echo " Merci de votre achat, voici votre monnaie $rendu";}
else {echo'Vous n avez pas assez payé:
<form Method="GET"action="rendu1.php"> Votre argent<input type="text"name="paye"> <input type="hidden" name="ajout" value=[B]"paye"[/B]>
$paye=$paye+$ajout;
<input type="submit" value="envoyer">; Pour envoyer ou
<input type="reset" value="annuler">pour annuler </form>'; } ?>
</body> </html> Il y a forcement un problème, non ?
Si je met $_GET["ajout"] au début, il y aura forcement un message d'erreur disant que la fonction n'est pas défini, ce qui est normal car je n'ai pas encore rempli le formulaire.
Pouvez vous m'indique mon erreur ou les zones où je dois placer vos instructions ?
C'est plus compliqué, Redando, apparemment avec les sessions, non ?
Merci à vous deux
Dernière modification par Philou67 ; 29/11/2010 à 11h09.
Motif: Balise PHP au lieu de QUOTE
-
28/11/2010 - 14h03 Faith
Re : PHP: additionner des variables
 Envoyé par oignon57 Si je met $_GET["ajout"] au début, il y aura forcement un message d'erreur disant que la fonction n'est pas défini Soyons précis: ce sera un warning indiquant que la variable n'est pas définie. C'est pour cela que la fonction isset() existe 
Pouvez vous m'indique mon erreur ou les zones où je dois placer vos instructions ?
Non, je pense avoir donner suffisamment de piste pour cet exercice scolaire.
Un dernier point important cependant:
tu écris Code: <input type="hidden" name="ajout" value="paye"> La valeur de cette variable sera donc la chaine de caractère "paye", et non pas, comme tu le voudrais, le contenu de la variable $paye
Un dernier conseil: après chaque affectation de variable, mets (temporairement) un printf("#%s#<br>\n", $ma_variable);
Ca te permettra de mieux comprendre le fonctionnement de ton script
Bon courage.
-
29/11/2010 - 11h10 Philou67
Re : PHP: additionner des variables
Merci d'utiliser la balise [PHP] (icône ) au lieu de la balise de citation pour insérer du code PHP.
Philou67 pour la modération. Plus j'apprends, et plus je mesure mon ignorance | | |