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

<?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.

3 réponses


w2bas
Réponse acceptée

Tu n'as pas besoin de faire des foreachs imbriqués, un seul te suffit sur X par exemple, tu sais qu'il y a un Y correspondant.

s4p
Réponse acceptée
<?php

    if (isset($_POST'x']) && isset($_POST'y']) && !empty($_POST'x']) && !empty($_POST'y'])) {

        extract($_POST);

        $r = 0;

        foreach ($x as $keyX => $valX){
            if (is_numeric($valX) && isset($y$keyX]) && is_numeric($y$keyX])){
                $r += $valX * $y$keyX];
            }
        }

    }

?>
<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <pre>
            <?php //print_r($_POST); ?>
        </pre>
        <form method="post" action="">
            <input type="checkbox" name="x[1]" value="10" <?= isset($x[1]) ? 'checked' : '' ?>>10$
            <input type="number" name="y[1]" value="<?= isset($y[1]) ? $y[1] : '' ?>">
            <br />
            <input type="checkbox" name="x[2]" value="20" <?= isset($x[2]) ? 'checked' : '' ?>>20$
            <input type="number" name="y[2]" value="<?= isset($y[2]) ? $y[2] : '' ?>">
            <br />
            <input type="checkbox" name="x[3]" value="50" <?= isset($x[3]) ? 'checked' : '' ?>>50$
            <input type="number" name="y[3]" value="<?= isset($y[3]) ? $y[3] : '' ?>">
            <br />
            <?php if (isset($r)){ ?>
            <div>
                Total: <?= $r ?>$
            </div>
            <?php } ?>
            <input type="submit">
        </form>
    </body>
</html>

merci pour votre aide :)