Выбор радиокнопки для выдачи формы PayPal

нужна ваша помощь

Итак, у меня есть форма PayPal, в которой также есть два переключателя. Один со стоимостью доставки, а другой без. Вот ссылка на актуальную форму http://www.topchoicedata.com/test.php

Что я хочу, так это то, что если человек выберет первый радиобокс («Доставка 19,99 долл. США — БАЗА ДАННЫХ ОТПРАВЛЕНА НА КОМПАКТ-ДИСК»), то 19,99 автоматически добавится к сумме «hdwppamount», которая установлена ​​​​на уровне 175 долл. США, поэтому, когда человек Press «оплатить сейчас», общая сумма на странице PayPal составит 194,99 доллара.

И если вместо этого человек выбрал второй вариант («БЕСПЛАТНАЯ ДОСТАВКА — БАЗА ДАННЫХ, ОТПРАВЛЕННАЯ ПО ​​ЭЛЕКТРОННОЙ ПОЧТЕ»), то, конечно, к сумме «hdwppamount» не добавляется никакой ценности, и общая сумма для страницы PayPal будет составлять 175 долларов.

Теперь код работает, если человек выбирает один или другие варианты, а затем не переключается между переключателями, решая, какой из них выбрать. Так что это немного глючит, потому что, если я выбираю первый вариант, затем выбираю второй вариант, и так далее, и так далее, я либо получаю страницу с ошибкой, либо если я выбрал бесплатный вариант, 19,99 все еще добавляется.

Мне нужно, чтобы при выборе первого варианта добавлялось 19,99, а при выборе второго варианта ничего не добавлялось.

Любая помощь будет оценена по достоинству.

<!--------------------HTML Form---------------------_

  <form action="PPPaymentForm/PPPaymentForm.php"  method="post" name="topchoiceform" id="topchoiceform">
    <input placeholder="Company Name" type="text" name="companyname" required>
    <input placeholder="First Name" type="text" name="first_name" required>
    <input placeholder="Last Name" type="text" name="last_name" required>
    <input placeholder="Email" type="email" name="email" id="email" required>
    <input placeholder="Address" type="text" name="address1" required>

    <input name="shipping" class="shipping" type="radio" id="shipping" checked/>
    <label class="shippingcheck">$19.99 Shipping – DATABASE SENT ON CD ROM </label>
     <br>
    <input name="shipping" class="shipping" type="radio" id="noshipping"/>
    <label class="shippingcheck">FREE SHIPPING – DATABASE SENT VIA EMAIL</label>

    <br>
    <button name="submit" type="submit" id="submit">Pay Now</button>



    <!-------------Paypal Part------------->
    <input type="hidden" name="hdwtablename" id="hdwtablename" value="1">
    <input type="hidden" name="hdwppproductname" id="hdwppproductname" value="Basic Plan 175">
    <input type="hidden" name="hdwppamount" id="hdwppamount" value="175">
    <input type="hidden" name="hdwppcurrency" id="hdwppcurrency" value="USD">
    <input type="hidden" name="hdwpplanguage" id="hdwpplanguage" value="en_US">
    <input type="hidden" name="hdwok" id="hdwok" value="http://www.topchoicedata.com/paymentmadethanks.php">
    <input type="hidden" name="hdwemail" id="hdwemail" value="mauriceflopez+gmail.com">
    <input type="hidden" name="hdwnook" id="hdwnook" value="http://">
    <input type="hidden" name="hdwactivation_email" id="hdwactivation_email" value="email">
    <input type="hidden" name="plan" id="plan" value="$175">
    <input type="hidden" name="shippingchoosen" id="shippingchoosen" value="">
    <input type="hidden" name="shippingnumber" id="shippingnumber" value="">
  </form>

PHP

<script>

$('#shipping').change(function(){

    var hdwppamount = Number($("#hdwppamount").val())

    var shippingcost = 19.99;



     if (this.checked) {

        $("#hdwppamount").val(hdwppamount+shippingcost)

     } else {

        $("#hdwppamount").val(hdwppamount-shippingcost)

     }

})

</script>

person Manny Smith    schedule 19.04.2016    source источник
comment
Вы можете на всякий случай попробовать $(#hdwppamount).val(+hdwppamount + +shippingcost)   -  person user2278120    schedule 19.04.2016
comment
То, что вы назвали PHP выше, на самом деле является JavaScript. Я удалил здесь тег php, потому что он не имеет значения...   -  person War10ck    schedule 19.04.2016


Ответы (1)


При использовании радио вы можете одновременно проверять только один из них. Это означает, что вы должны проверить, какой из них проверяется в определенный момент (например, событие изменения).

Я изменил поле ввода hdwppamount со скрытого на текст во фрагменте, чтобы прояснить поведение.

$(function () {
  $('#shipping, #noshipping').on('change', function(){
    var hdwppamount = Number($("#hdwppamount").val());
    var shippingcost = 19.99;
    if (this.id == 'noshipping') { // shipping unchecked
      $("#hdwppamount").val(hdwppamount-shippingcost);
    } else { // shipping checked
      $("#hdwppamount").val(hdwppamount+shippingcost);
    }
  });
  // initialize the field with the correct value
  $("#hdwppamount").val('194.99');
});
<script src="https://code.jquery.com/jquery-1.12.1.min.js"></script>

<form action="PPPaymentForm/PPPaymentForm.php"  method="post" name="topchoiceform" id="topchoiceform">
    <input placeholder="Company Name" type="text" name="companyname" required>
    <input placeholder="First Name" type="text" name="first_name" required>
    <input placeholder="Last Name" type="text" name="last_name" required>
    <input placeholder="Email" type="email" name="email" id="email" required>
    <input placeholder="Address" type="text" name="address1" required>

    <input name="shipping" class="shipping" type="radio" id="shipping" checked/>
    <label class="shippingcheck">$19.99 Shipping – DATABASE SENT ON CD ROM </label>
    <br>
    <input name="shipping" class="shipping" type="radio" id="noshipping" />
    <label class="shippingcheck">FREE SHIPPING – DATABASE SENT VIA EMAIL</label>

    <br>
    <button name="submit" type="submit" id="submit">Pay Now</button>



    <!-------------Paypal Part------------->
    <input type="hidden" name="hdwtablename" id="hdwtablename" value="1">
    <input type="hidden" name="hdwppproductname" id="hdwppproductname" value="Basic Plan 175">
    <input type="text" name="hdwppamount" id="hdwppamount" value="175">
    <input type="hidden" name="hdwppcurrency" id="hdwppcurrency" value="USD">
    <input type="hidden" name="hdwpplanguage" id="hdwpplanguage" value="en_US">
    <input type="hidden" name="hdwok" id="hdwok" value="http://www.topchoicedata.com/paymentmadethanks.php">
    <input type="hidden" name="hdwemail" id="hdwemail" value="mauriceflopez+gmail.com">
    <input type="hidden" name="hdwnook" id="hdwnook" value="http://">
    <input type="hidden" name="hdwactivation_email" id="hdwactivation_email" value="email">
    <input type="hidden" name="plan" id="plan" value="$175">
    <input type="hidden" name="shippingchoosen" id="shippingchoosen" value="">
    <input type="hidden" name="shippingnumber" id="shippingnumber" value="">
</form>

person gaetanoM    schedule 19.04.2016
comment
Работал как шарм! Спасибо! - person Manny Smith; 19.04.2016