Produit Valeurs de deux Tableau

Résolu/Fermé
dberba Messages postés 15 Date d'inscription vendredi 2 juillet 2010 Statut Membre Dernière intervention 30 août 2013 - 11 déc. 2012 à 17:20
dberba Messages postés 15 Date d'inscription vendredi 2 juillet 2010 Statut Membre Dernière intervention 30 août 2013 - 11 déc. 2012 à 18:28
Bonjour,
bonjour,
1-je vais décrire ce que j'essaie de faire

quand je coche une checkbox je met combien de billet de ce type.

2-EXEMPLE :
10$ => 2 billets
20$ => 1 billet
50$ => 4 billets
<image> http://img15.hostingpics.net/pics/852646check1.png </image>
<?php
 
    if (isset($_POST['x']) && isset($_POST['y'])) {
 
        extract($_POST);
 
                $r = 0;
 
        foreach ($x as $keyX => $valX) {
 
            foreach ($y as $keyY => $valY) {
 
                if (!empty($valY)) {
 
                    $r += $valX * $valY.'<br />';
 
                }
 
            }
 
        }
                 
                echo $r; //400
 
    }
 
?>
<form method="post" action="test.php">
    <input type="checkbox" name="x[1]" value="10">10$
    <input type="number" name="y[1]">
    <br />
    <input type="checkbox" name="x[2]" value="20">20$
    <input type="number" name="y[2]">
    <br />
    <input type="checkbox" name="x[3]" value="50">50$
    <input type="number" name="y[3]">
    <br />
    <input type="submit">
</form>


les "FOREACH" imbriqués que j'ai fait donne
10x2
10x1
10x2

20x2
20x1
20x2

50x2
50x1
50x2

résultat = 400$ :p

3-ce que je veux : résultat = (10*2 + 20*1 + 50*2) = 140$
4-Aidez moi :D
et merci d'avance.


A voir également:

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 11/12/2012 à 18:22
avec tes boucles imbriqués tu multipliait chaque valeur de x par toutes les valeurs de y
et attention le type="number" c'est du html5 et pas compatible avec IE et FireFox (marche avec chrome, safari...)

avec type="text" et en testant is_numeric ça élimine les frappes non numériques, par contre pas de petites flèches + / -

<?php 
  
    if (isset($_POST['x']) && isset($_POST['y'])) {  
        extract($_POST);  
        foreach ($x as $keyX => $valX) {             
   //on multiplie x par le  y de même index 
            if (!empty($y[$keyX]) && is_numeric($y[$keyX])) {  
                $r += $valX * $y[$keyX]; 
            } 
        } 
                  
                echo "resultat= ".$r; //400 
    } 
  
?> 
<form method="post" action="test.php"> 
    <input type="checkbox" name="x[1]" value="10" />10$ 
    <input type="text" name="y[1]" value="" /> 
    <br /> 
    <input type="checkbox" name="x[2]" value="20" />20$ 
    <input type="text" name="y[2]" /> 
    <br /> 
    <input type="checkbox" name="x[3]" value="50" />50$ 
    <input type="text" name="y[3]" /> 
    <br /> 
    <input type="submit" name="envoyer" value="Envoyer"/> 
</form>
1
dberba Messages postés 15 Date d'inscription vendredi 2 juillet 2010 Statut Membre Dernière intervention 30 août 2013
11 déc. 2012 à 18:28
merci beaucoup pour ton aide :)
0