Interactivité formulaire symfony

Résolu
new-dev Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
new-dev Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'aimerais avoir de l'interractivé en temps réel dans un formulaire Symfony.

Par exemple : j'utilise un formulaire Symfony et je voudrais que quand l'utilisateur rentre des données, par exemple, j'ai des champs NumberType (prix, quantité, total et un bouton acheter), c'est un exemple.

Quand l'utilisateur saisit une quantité, faire en sorte que l'input total soit automatiquement mis à jour, sans recharger la page. Je ne sais pas si c'est possible, ou trop compliquer à réaliser ?

Est-ce que c'est réalisable, possible facilement ?

Merci

1 réponse

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Tu peux utiliser javascript pour réaliser ceci.

L'idée est d'ajouter une fonction sur l'événement onchange de chaque input prix et quantité et de réaliser le calcul dans cette fonction.

Un exemple simplifié :
<label>Prix 1 <input type="text" name="prix1" class="prix"></label>
<label>Quantité 1 <input type="text" name="quantite1" class="quantite" value="1"></label>
<br>
<label>Prix 2 <input type="text" name="prix2" class="prix"></label>
<label>Quantité 2 <input type="text" name="quantite2" class="quantite" value="1"></label>
<br>
Total : <input type="text" class="total" readonly>


// on récupère tous les input class="prix"
var inputsPrix = document.querySelectorAll('.prix');
// on récupère tous les input class="quantite"
var inputsQuantite = document.querySelectorAll('.quantite');

// on ajoute un listener sur tous les input prix et quantite pour exécuter la fonction calculTotal() dès qu'on change une de leur valeur
for (var i = 0; i < inputsPrix.length; i++) {
  inputsPrix[i].addEventListener('change', calculTotal);
}
for (var i = 0; i < inputsQuantite.length; i++) {
  inputsQuantite[i].addEventListener('change', calculTotal);
}

function calculTotal() {
  var total = 0;

  for (var i = 1; i <= inputsPrix.length; i++) {
    // on calcul le total : prix1 * quantite1 + prix2 * quantite2 ...
    var prixI = document.querySelector('[name="prix' + i + '"]').value;
    var quantiteI = document.querySelector('[name="quantite' + i + '"]').value;
    total += prixI * quantiteI;
  }

  document.querySelector('.total').value = total;
}


Bonne journée,
0
new-dev Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   1
 
Nickel, merci, bonne journée :)
0