Search code examples
phpjqueryinputsumradiobuttonlist

Get sum from more input radio button values


Can you help me ? It's part of my form. I want sum of values from more inputs (type=radio) after check it dynamically. I want count total price (variable - $res). I know that this is string, but when I was changed settype to int, it doesn't work. Please, help me :)

                      <div class="wrapper_input">
                    <input type="radio" name="fee" id="radio1" value="300">
                    <label for="radio1">D1 &nbsp;300,00 €</label>
                  </div>
                  <div class="wrapper_input">
                    <input type="radio" name="fee" id="radio2" value="150">
                    <label for="radio2">D2 &nbsp;150,00 €</label>
                  </div>
            <script>
                $('.wrapper_input input[type=radio]').on('change', function(event) {
                var result = $(this).val();
                $('.result').html(result);
                })
            </script>
            <?php
                $prem = "<span class='result'></span>";
            ?>
            <br>
                  <div class="case2">
                    <input type="radio" name="fee1" id="radio1" value="300">
                    <label>D5 &nbsp;300,00 €</label>
                  </div>
                  <div class="case2">
                    <input type="radio" name="fee1" id="radio2" value="150">
                    <label for="radio6">D6&nbsp;150,00 €</label>
                  </div>
            <script>
                $('.case2 input[type=radio]').on('change', function(event) {
                var result2 = $(this).val();
                $('.result2').html(result2);
                })
            </script>
            <?php                   
                $prem2 = "<span class='result2'></span>";
            ?>
            <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
            TOTAL PRICE 
            <?php 
                $res = $prem + $prem2;
                echo $res;
            ?>

Solution

  • Based of the comment from questioner, here's a simple example to calculate the total price on client side:

    <html>
     <head>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
      </script>
      <script type="text/javascript">
       var globalSum = 0;
       function summerize(formfieldObj)
       {
    globalSum = 0;
    formulaObj = $(formfieldObj).parents("form");
    $(formulaObj).find("input[type='radio']:checked").each(function()
    {
     globalSum = parseInt($(this).val()) + globalSum;
     $("#totalprice").html(globalSum);
     $(formulaObj).find("input[name='total']").val(globalSum);
    });
       }
      </script>
     </head>
     <body>
      <form name="bla" method="post">
       <div class="wrapper_input">
     <input type="radio" name="fee" id="radio1" value="300" onClick="summerize(this)">
     <label for="radio1">D1 &nbsp;300,00 €</label>
      </div>
      <div class="wrapper_input">
     <input type="radio" name="fee" id="radio2" value="150" onClick="summerize(this)">
     <label for="radio2">D2 &nbsp;150,00 €</label>
      </div>
    <br>
    <div class="case2">
     <input type="radio" name="fee1" id="radio3" value="300" onClick="summerize(this)">
     <label for="radio3">D5 &nbsp;300,00 €</label>
      </div>
      <div class="case2">
     <input type="radio" name="fee1" id="radio4" value="150" onClick="summerize(this)">
     <label for="radio4">D6&nbsp;150,00 €</label>
      </div>
      <input type="submit" value="Pay">
      <input type="hidden" name="total">
       </div>
      </form>
      <div>TOTAL PRICE:<br><span id="totalprice"></span></div>
     </body>
    </html>

    Hope it will help to lead into right direction.