Calculer somme des champs d'un formulaire

Calculer somme des champs d'un formulaire - HTML/CSS - Programmation

Marsh Posté le 04-05-2011 à 00:14:54    

Bonsoir,
 
Je cherche a calculer automatiquement la somme des valeurs de mes champs radio provenant de ma boucle pour l'afficher dans une div apres mon formulaire.
Je crois que JavaScript peut faire ça, mais je ne sais absolument pas comment m'y prendre !
 

Code :
  1. for {.......
  2.       echo '<input type="radio" name="ship'.$products[$i]['id'].'" value="0" onclick="this.form.submit()" '.$status.' /> Remise en main propre;
  3.       echo '<input type="radio" name="ship'.$products[$i]['id'].'" value="6.5"  onclick="this.form.submit()" '.$status2.' /> Colissimo';
  4. }
  5. <div id="totalFraisPort">Mon total</div>


 
Merci par avance
 

Reply

Marsh Posté le 04-05-2011 à 00:14:54   

Reply

Marsh Posté le 04-05-2011 à 18:28:21    

Personne pour un coup de pouce ?

Reply

Marsh Posté le 06-05-2011 à 13:31:27    

Pour faire ce genre de choses, j'aurai tendance à utiliser un framework, dans le genre jQuery.

 

Pour ce que tu veux faire :

Code :
  1. function getFormSum(formId){
  2.  var form = document.getElementById(formId);
  3.  var inputs = form.getElementsByTagName('input');
  4.  var sum = 0;
  5.  var radio;
  6.  for(var i=0;i<inputs.length;i++){
  7.    radio = inputs[i];
  8.    if(radio.type != 'radio') continue;// Tu peux ajouter une condition sur la classe ou sur ce que tu veux pour ne sélectionner que les éléments qui t'intéressent
  9.    if(radio.checked)
  10.      sum += radio.value;
  11.  }
  12.  return sum;
  13. }


Message édité par Paulp le 06-05-2011 à 13:31:39
Reply

Marsh Posté le 06-05-2011 à 15:03:59    

Quitte à utiliser Jquery ;)

 
Code :
  1. var sum = 0;
  2.  
  3. $('#monForm').find('input[type="radio"]').each
  4. (
  5.    function(i, el)
  6.    {
  7.            if(el.checked) sum += el.value;
  8.    }
  9. );
 


EDIT : pardon Paulp j'avais lu en diagonale, comme ça si pipo passe a jquery il a la fonction lol


Message édité par vanish le 06-05-2011 à 15:07:14
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed