Partage
  • Partager sur Facebook
  • Partager sur Twitter

formulaire avec checkbox

Sujet résolu
    6 décembre 2018 à 16:15:02

    Bonjour, 

    Je vais essayé d'être le plus clair possible dans ma demande, merci pour l'aide.

    J'ai une liste avec des input. Chaque input est de type checkbox et possède une valeur.

    Quand je choisi plusieurs input, leurs valeurs s'additionnent. Jusque là ça fonctionne avec ce code : 

    <form action="" method="post">
    
        <label><input type="checkbox" name="prix[]" value="100" />
            CHOIX 1</label><br />
    
        <label><input type="checkbox" name="prix[]" value="200" />
            CHOIX 2</label><br />
    <input type="submit" value="Valider" />
    </form>
    
    <?php
    $total = 0;
    if(isset($_POST['prix'])){
      foreach($_POST['prix'] as $prix)
        $total += $prix; }
    echo '<div>A partir de : '.$total.' €</div>';
    ?>

    Ce que je souhaite faire, c'est 2 "names" par input pour arriver à 2 variables à la fin comme ceci : 

    <label><input type="checkbox" name="prix[]" value="100" />
        <input type="checkbox" name="prixabo[]" value="10">
            CHOIX 1</label><br />
    
        <label><input type="checkbox" name="prix[]" value="200" />
            <input type="checkbox" name="prixabo[]" value="50">
           CHOIX 2</label><br />
    <input type="submit" value="Valider" />
    <?php
    $total = 0;
    $totalabo = 0;
    if(isset($_POST['prix'])){
      foreach($_POST['prix'] as $prix)
        $total += $prix; }
    if(isset($_POST['prixabo'])){
      foreach($_POST['prixabo'] as $prixabo)
        $totalabo += $prixabo; }
    
    echo '<div>A partir de : '.$total.' €</div>';
    echo '<div>Abonnement : '.$totalabo.' €</div>';
    
    ?>


    Je souhaite que, lorsque je coche CHOIX 1, j'ai ""A partir de 100 € et Abonnement 10€".

    Quand je fais ceci, ça fonctionne mais j'ai 2 checkbox, je n'en voudrais qu'une.

    En cherchant sur internet, j'ai trouvé le type "Hidden" pour les input et ainsi cacher la checkbox,mais la valeur s'affiche même sans cliquer sur le checkbox.

    Si vous pouvez m'aiguiller, merci et bonne journée



    -
    Edité par Antony Lefèvre 6 décembre 2018 à 16:16:47

    • Partager sur Facebook
    • Partager sur Twitter
      6 décembre 2018 à 17:09:36

      salut,

      As-tu jeté un oeil à ce cours ?

      • Partager sur Facebook
      • Partager sur Twitter
      Winter Is Coming - Explorez le forum : votre problème a déjà dû être traité ailleurs
        6 décembre 2018 à 18:11:47

        Bon joue rga, oui je l'ai fais j'ai d'ailleurs eu le certificat de réussite.

        J'ai relu la partie dédié aux formulaires, il y a beaucoup de choses mais rien qui pourrait régler mon problème à moins que je loupe quelque chose

        • Partager sur Facebook
        • Partager sur Twitter
          6 décembre 2018 à 18:20:46

          si je suis ton raisonnement, je dois pouvoir choisir l'un des deux MAIS pas les deux.

          donc, si tu as bien suivi ce cours et les exos, tu as vu un truc qui parle de boutons radio.

          je crois que c'est ce qu'il te faudrait.

          • Partager sur Facebook
          • Partager sur Twitter
          Winter Is Coming - Explorez le forum : votre problème a déjà dû être traité ailleurs
            6 décembre 2018 à 21:17:47

            J'ai du mal m'exprimer,

            Il y aura une liste de 10 prestations

            Chaque prestation a un coût de base (choix 1=100) + un coût d'abonnement.(choix 1=10)

            Je veux, au moment de cliquer sur la prestation , que le prix final + le prix final d'abonnement s'affichent.

            J'arrive a le faire avec 1 seul prix mais pas avec 2.

            Il faut aussi qu'on puisse sélectionner plusieurs prestations et qu'à chaque fois le prix de cumul

            • Partager sur Facebook
            • Partager sur Twitter
              7 décembre 2018 à 16:01:06

              Hello,

              Premièrement, ton code (présenté, tout du moins) possède une faille critique qui va permettre à l'ensemble de tes utilisateurs d'avoir l'ensemble des prestations gratuitement.

              Deuxièmement, l'HTML ne possède pas de corrélation avec le système Array PHP. Il ne te sera donc pas possible de stocker deux variables et de les incrémenter sous forme d'array dans une requête POST. Il te faudra passer soit par la modification du DOM, soit regarder tes champs 1 par 1.

              Autre solution sinon, passer par un HACK HTML. Tu nommes tes index de ce type :

              prix_{xxxx}

              prixabo_{xxxxx}

              Puis en PHP tu les explode pour obtenir ton Array PHP :

              <?php 
              
              if(count($_POST) > 0) {
                  $exp = explode("_", $_POST);
                  $prix = 0;
                  $prixabo = 0;
              
                  foreach($exp as $key => $value) {
                      if($key == "prix") {
                           $prix += $value;
                      } elseif($key == "prixabo") {
                           $prixabo += $value;
                      }
                  }
              }

              Facile. :ange:

              • Partager sur Facebook
              • Partager sur Twitter
                7 décembre 2018 à 16:29:24

                j'ai regardé un peu ce midi et je pense avoir une solution.

                crées deux labels "total Prix" et "total Abo" sous tous les inputs.

                ajoutes une fonction js appelée "monCalcul" qui va ...

                ajouter ou retirer le montant selon que n'importe quelle case "prix" soit cochée ou pas.

                perso, j'ai testé avec un seul label, mais ça peut aller dans le sens de ce qu'il te faut.

                ensuite, reste à adapter cette idée à ton code

                • Partager sur Facebook
                • Partager sur Twitter
                Winter Is Coming - Explorez le forum : votre problème a déjà dû être traité ailleurs
                  7 décembre 2018 à 16:50:26

                  Merci à vous deux !

                  Ca va bien m'aider 

                  @RPGBook, je sais que ce n'est pas sécurisé mais ce n'est pas pour ajouter au panier.

                  En fait je fais ça pour donner une idée de prix à des clients, ils cochent les prestations qu'ils veulent, et ça donne un prix. Ce n'est pas un e-commerce

                  Encore merci

                  • Partager sur Facebook
                  • Partager sur Twitter
                    10 décembre 2018 à 8:28:49

                    Si ton sujet est résolu, n'oublis pas de le notifier. :ange:
                    • Partager sur Facebook
                    • Partager sur Twitter

                    formulaire avec checkbox

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown