Total Calcul Panier [Résolu]

Messages postés
17
Date d'inscription
samedi 5 décembre 2009
Dernière intervention
22 octobre 2010
- - Dernière réponse : cs_jackdaniel9
Messages postés
17
Date d'inscription
samedi 5 décembre 2009
Dernière intervention
22 octobre 2010
- 1 oct. 2010 à 18:31
Bonjour,
Il faut que je calcule le prix par rapport à la quantité dans un formulaire pour un panier.

Je me demandais si il était possible de faire la même chose mais en moins de code

Merci d'avance

---

<?php

/* On défini nos variables pour les prix et les champs */
$nbr1='0';
$nbr2='5'; /* PRIX 5$ */
$nbr3='0';
$nbr4='5'; /* PRIX 5$ */
$nbr5='0';
$nbr6='8'; /* PRIX 8$ */
$nbr7='0';
$nbr8='55'; 
$nbr9='0';
$nbr10='4'; 
$nbr11='0';
$nbr12='3';
$nbr13='0';
$nbr14='2';
$nbr15='0';
$nbr16='4';
$nbr17='0';
$nbr18='6';

/* On défini nos variables à 0 pour ne pas créer d'erreur dans le champ */
$resultat1='0'; 
$resultat2='0';
$resultat3='0';
$resultat4='0';
$resultat5='0';
$resultat6='0';
$resultat7='0';
$resultat8='0';
$resultat9='0';
$resultat10='0';


if (isset($_POST['Calculer']))
{
/* On récupère les nombres entrés par l'utilisateur */
$nbr1=$_POST["nbr1"]; 
$nbr3=$_POST["nbr3"];
$nbr5=$_POST["nbr5"];
$nbr7=$_POST["nbr7"];
$nbr9=$_POST["nbr9"];
$nbr11=$_POST["nbr11"];
$nbr13=$_POST["nbr13"]
$nbr15=$_POST["nbr15"];
$nbr17=$_POST["nbr17"];


$resultat1=$nbr1*$nbr2; /* Nombre de l'utilisateur multiplier par le prix ( 5$ ) petit total 1 */
$resultat2=$nbr3*$nbr4; /*  petit total 2 */
$resultat3=$nbr5*$nbr6;
$resultat4=$nbr7*$nbr8;
$resultat5=$nbr9*$nbr10;
$resultat6=$nbr11*$nbr12;
$resultat7=$nbr13*$nbr14;
$resultat8=$nbr15*$nbr16;
$resultat9=$nbr17*$nbr18;

/* GROS total des petits totals */	  $resultat10=$resultat1+$resultat2+$resultat3+$resultat4+$resultat5+$resultat6+$resultat7+$resultat8+$resultat9;

}
?>
[...]
<!-- Mon Formulaire avec tous les champs je vous épargnes les autres champs -->
<tr>
  <td>Nombre 1 : "   onChange="document.Calculatrice.submit();"></td>
  <td>Nombre 2 : " readonly='readonly'></td>
  <td>total : "></td>
</tr>
[...]
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Dernière intervention
27 avril 2012
22
3
Merci
Salut,

Il serait sans doute plus logique de faire tout ça en Javascript. Ce qui bien évidemment n'enlèvera pas l'obligation du calcul côté serveur une fois la manipulation totalement finalisée côté client.

Il y a plusieurs solutions pour réduire le code, par exemple :

<?php
$prices = array(5, 11, 8, ....); // tableau des prix
// tableau des quantités
$qty = (isset($_POST['sub'])) ? $_POST['qty'] : array_fill(0, count($prices), 0); 
$a = array_map(NULL, $prices, $qty);
?>

<form method="post" action="">
    <?php
    foreach ($a as $b) {
        echo '

        
        
        total : ';
    }
    ?>
    
</form>


C'est juste pour montrer une piste hein, il manque des choses (tests des données du formulaires, etc ...)

Cordialement,


Kohntark -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de kohntark
Messages postés
25
Date d'inscription
mardi 24 octobre 2006
Dernière intervention
12 novembre 2010
0
Merci
petit truc a 2balles

$resultat1=$resultat2=$resultat3=$resultat4=$resultat5=
$resultat6=$resultat7=$resultat8=$resultat9=$resultat10='0';


DiabloBros Was Here...
Commenter la réponse de DiabloBros
Messages postés
25
Date d'inscription
mardi 24 octobre 2006
Dernière intervention
12 novembre 2010
0
Merci
et je dirai meme que si tes $nbr sont en fait des contante est non des varible ^^ et bien $nbr1=nbr3=$nbr5=$resultat1 etc etc ...

DiabloBros Was Here...
Commenter la réponse de DiabloBros
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Dernière intervention
14 janvier 2011
13
0
Merci
Salut,

Pour faire moins de code, on peut utiliser un tableau et array_sum().

Au passage, le pluriel de total est totaux...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Commenter la réponse de neigedhiver
Messages postés
17
Date d'inscription
samedi 5 décembre 2009
Dernière intervention
22 octobre 2010
0
Merci
Merci !
Commenter la réponse de cs_jackdaniel9

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.