Besoin d'aide sur un Formulaire de payement

Signaler
Messages postés
7
Date d'inscription
mercredi 16 juin 2021
Statut
Membre
Dernière intervention
24 juin 2021
-
Messages postés
7
Date d'inscription
mercredi 16 juin 2021
Statut
Membre
Dernière intervention
24 juin 2021
-
Bonjour, Je suis entrain de faire un formulaire pour valider des payements. Le truc est que la page affiche les éléments a payer et devant chaque élément se trouve une case à cocher si l'on veut payer. En fait l'utilisateur a le choix de choisir ce qu'il veut payer. Donc je voudrais pouvoir insérer un label Montant qui affiche immédiatement le montant à payer a chaque fois que l'utilisateur coche une case. J'ai besoin d'aide svp

4 réponses

Messages postés
33476
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2021
3 719
Bonjour
Dans quel langage de programmation ?

Messages postés
7
Date d'inscription
mercredi 16 juin 2021
Statut
Membre
Dernière intervention
24 juin 2021

en html et php
Messages postés
33476
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2021
3 719 >
Messages postés
7
Date d'inscription
mercredi 16 juin 2021
Statut
Membre
Dernière intervention
24 juin 2021

Alors, si tu veux que ça se fasse au moment de coucher la case, il faudra utiliser du JavaScript..
Et si la formation du prix et présente en base de données et que tu ne l'as pas encore à serrer dans ton formulaire il faudra aller rechercher ce prix en AJAX..
Ou alors que tu mettes le prix des produits border data attribute sur chaque case à cocher par exemple...
Pour l'instant, vu que tu ne nous as pas montré ce que tu avais commencé à coder il nous sera impossible de t'en dire plus.

Nb: pour poster ton code sur le forum, tu devras utiliser les balises de code.
Explications à lire entièrement disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

.
Messages postés
7
Date d'inscription
mercredi 16 juin 2021
Statut
Membre
Dernière intervention
24 juin 2021
>
Messages postés
33476
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2021

Je vois déjà. Je me doutais bien que du JavaScript serait impliqué. J'enverrai mon code d'ici peu. Merci pour votre aide
Messages postés
7
Date d'inscription
mercredi 16 juin 2021
Statut
Membre
Dernière intervention
24 juin 2021

Dsl pour ce retard mais j'ai eu quelques contre temps. Voila un peu le code. J'espère bien que vous vous retrouverez
<!DOCTYPE HTML>
<html> 
<head>
	<title> Payement </title>
	<meta charset="utf-8">
	<link rel="stylesheet" type="text/css" href="validation.css">
</head>
   <body> 
     <?php
            $Num = $_GET['Numero'];

            $serveur = "localhost";
            $login = "root";
            $pass ="";
          try{
                  $connexion = new PDO("mysql:host=$serveur;dbname=etat de deliberation",$login, $pass);
                  $connexion ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

          $jointure = "
          SELECT  ecu.LibECU
          FROM etudiant
          INNER JOIN moyenneue
          ON etudiant.NumMat = moyenneue.NumMat
          INNER JOIN ue
          ON moyenneue.CdeUE = ue.CdeUE
          INNER JOIN ecu
          ON ue.CdeUE = ecu.CdeUE
          INNER JOIN moyenneecu
          ON ecu.CdeECU = moyenneecu.CdeECU
          WHERE etudiant.NumMat= $Num
          AND MoyUE < 10
          AND MoyECU < 10 
          GROUP BY ecu.CdeECU";
        
          $req=$connexion-> prepare($jointure);
          $req-> execute();
          $resultat=$req->fetchall();

          }

                   catch(PDOException $e){
        echo 'Echec de la connexion:' .$e->getMessage();
      }
    
    ?>

   		<form method="post" action="traitement.php">
   			<h1>Liste des matières à reprendre</h1>
   			<div class="div-t">
   			<label id="NumMat" >N° matricule </label>
   			<input type="text" id="NumMat" name="NumMat" value="<?php echo $Num ?>">

   			<label id="Nom" >Nom </label>
   			<textarea id="nom" name="Nom" value="<?php 
           $requete=$connexion->prepare( "SELECT NomEtu, PrenEtu
            FROM etudiant
            WHERE NumMat= $Num");
            $requete-> execute();
            $result=$requete->fetchall();
              echo "$result"

        ?>"> </textarea> 

      </div>

       <fieldset>
    <table>
      <thead>
        <tr>
          <td>Nom ECU </td>
          <td> Reprendre </td> 
        </tr>
      </thead>
      <tbody>
        <?php
          foreach ($resultat as $donnees)
        {
        ?>
        <tr>
          <td> <?php echo $donnees['LibECU']; ?> </td>
          <td> <input type= "checkbox" name="case" />
        </tr>
        <?php
        }
        ?>
      </tbody>
    </fieldset>
      <div>
      <label for="Mont">Montant: <input type="number" id="Mont" name="Mont" value=""> </label>
      </div>
   </body>
</html>


J'ai toujours pas pu faire ce que je voulais
Messages postés
33476
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2021
3 719
En même temps.. je ne vois toujours pas de javascript dans ton code ....

et puis; il serait bien de mettre le prix dans l'attribut VALUE de tes checkbox si tu veux ensuite pouvoir t'en servir ...
Messages postés
7
Date d'inscription
mercredi 16 juin 2021
Statut
Membre
Dernière intervention
24 juin 2021

En fait je m'y connais pas du tout en Js. Raison de ma demande d'aide ici.

Etant donné que le checkbox est dans un foreach ça marchera ? Et le prix est unique pour n'importe quel élément. A chaque élément coché l'attribut value du label Montant change en fonction de ce prix
Messages postés
33476
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2021
3 719

Etant donné que le checkbox est dans un foreach ça marchera

Oui

Et le prix est unique pour n'importe quel élément. A chaque élément coché l'attribut value du label Montant change en fonction de ce prix

Un label n'a pas d'attribut VALUE.
Mais les checkbox en ont un ... qu'il faut mettre .. ET renseigner !

En fait je m'y connais pas du tout en Js. Raison de ma demande d'aide ici

Oui.. ok .. on veut bien t'aider.... mais pas le faire à ta place.
Donc, si tu n'as aucune connaissance en JS... ben...il faut commencer par apprendre...

Pour détecter le click
https://developer.mozilla.org/fr/docs/Web/API/Element/click_event

Puis :
https://www.google.com/search?q=javascript+get+value+of+checked+checkbox

https://developer.mozilla.org/fr/docs/Web/API/Document/getElementsByClassName
Messages postés
7
Date d'inscription
mercredi 16 juin 2021
Statut
Membre
Dernière intervention
24 juin 2021
>
Messages postés
33476
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2021

Bonsoir, suis de retour. J'espère que vous vous portez bien. J'ai suivie les cours et j'ai pu réussir à écrire un petit truc mais ce n'es pas encore parfait. J'aurais besoin de quelques conseils si possibles.
  <script type="text/javascript">
      var p = document.getElementsByClassName('check');
       p.addEventListener('click', changermontant);
      function changermontant(){
      var p1= document.getElementsByClassName('check').value;
     document.getElementById('Mont').value = document.getElementById('Mont').value + p1;
     }
    </script>


A ce niveau j'ai deux problèmes. En premier la valeur de mon checkbox est considéré comme un string car les valeurs s'ajoutent l'un à la suite de l'autre au lieu de s'additionner.
Mon second problème est au niveau du click. Lorsque je déclique un checkbox le programme le considère comme un click et la fonction est exécuté. Donc en clair je ne peux pas cliquer puis changer d'avis et cliquer à nouveau pour décocher la case
Messages postés
7
Date d'inscription
mercredi 16 juin 2021
Statut
Membre
Dernière intervention
24 juin 2021

Un label n'a pas d'attribut VALUE.
Mais les checkbox en ont un ... qu'il faut mettre .. ET renseigner !

Au faite voulais parler du input type associé au label.

Oui.. ok .. on veut bien t'aider.... mais pas le faire à ta place.
Donc, si tu n'as aucune connaissance en JS... ben...il faut commencer par apprendre...

Oui je comprends . Et j'ai déjà commencer à suivre des vidéos de cours sur le JS. C'est juste le temps qui me fait défaut.

Merci beaucoup pour votre aide.