Если вам нравится SbUP Форум, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....

 

Вопрос к программистам

Автор [Lichkin-rus], 04-02-2016, 22:35:57

« назад - далее »

[Lichkin-rus]Topic starter

Уважаемые программисты, помогите пожалуйста перед отправкой "sum", умножить это значение на 1.04, разобраться не получается, буду очень благодарен  :)
Нужную строку пометил комментарием

<form method="POST" action="отправка на сервер">
<input type="hidden" name="receiver" value="номер отправителя" />
<input type="hidden" name="formcomment" value="name1" />
<input type="hidden" name="short-dest" value="name2" />
<input type="hidden" name="label" value="$order_id" />
<input type="hidden" name="quickpay-form" value="donate" />
<input type="hidden" name="targets" value="транзакция {order_id}" />
<input type="text" name="sum" data-type="number" />  {тут вводится нужная сумма, которую надо умножить на 1.04}
<input type="hidden" name="comment" value="комментарий" />
<input type="hidden" name="need-fio" value="true" />
<input type="hidden" name="need-email" value="true" />
<input type="hidden" name="need-phone" value="false" />
<input type="hidden" name="need-address" value="false" />
<label><input type="radio" name="paymentType" value="PC" />1</label>
<label><input type="radio" name="paymentType" value="AC" />2</label>
<input type="submit" value="Клик" /></form>


Старый

Вы дали только HTML-код. В нём вычисления не производятся.
Можно на JS сделать вставку.
Но лучше в PHP при обработке формы, в проверках данных, просто добавить:
$sum=$sum*1,04;
Если в проверках не меняется имя переменной "$sum".


alex-web

Можно так:
<script>
   function sendForm()
   {
      var sum = dоcument.getElementById('sum');
      sum.value = sum.value * 1.04;
      return true;
   }
</script>
<form method="POST" action="отправка на сервер" onsubmit="sendForm()">
<input type="hidden" name="receiver" value="номер отправителя" />
<input type="hidden" name="formcomment" value="name1" />
<input type="hidden" name="short-dest" value="name2" />
<input type="hidden" name="label" value="$order_id" />
<input type="hidden" name="quickpay-form" value="donate" />
<input type="hidden" name="targets" value="транзакция {order_id}" />
<input type="text" name="sum" data-type="number" id="sum"/>  {тут вводится нужная сумма, которую надо умножить на 1.04}
<input type="hidden" name="comment" value="комментарий" />
<input type="hidden" name="need-fio" value="true" />
<input type="hidden" name="need-email" value="true" />
<input type="hidden" name="need-phone" value="false" />
<input type="hidden" name="need-address" value="false" />
<label><input type="radio" name="paymentType" value="PC" />1</label>
<label><input type="radio" name="paymentType" value="AC" />2</label>
<input type="submit" value="Клик" /></form>

[Lichkin-rus]Topic starter

Цитата: alex-web от 05-02-2016, 10:27:40
Можно так:
<script>
   function sendForm()
   {
      var sum = dоcument.getElementById('sum');
      sum.value = sum.value * 1.04;
      return true;
   }
</script>
<form method="POST" action="отправка на сервер" onsubmit="sendForm()">
<input type="hidden" name="receiver" value="номер отправителя" />
<input type="hidden" name="formcomment" value="name1" />
<input type="hidden" name="short-dest" value="name2" />
<input type="hidden" name="label" value="$order_id" />
<input type="hidden" name="quickpay-form" value="donate" />
<input type="hidden" name="targets" value="транзакция {order_id}" />
<input type="text" name="sum" data-type="number" id="sum"/>  {тут вводится нужная сумма, которую надо умножить на 1.04}
<input type="hidden" name="comment" value="комментарий" />
<input type="hidden" name="need-fio" value="true" />
<input type="hidden" name="need-email" value="true" />
<input type="hidden" name="need-phone" value="false" />
<input type="hidden" name="need-address" value="false" />
<label><input type="radio" name="paymentType" value="PC" />1</label>
<label><input type="radio" name="paymentType" value="AC" />2</label>
<input type="submit" value="Клик" /></form>

Спасибо! работает :)

Clever

Цитата: [Lichkin-rus] от 05-02-2016, 15:51:26
Спасибо! работает :)

Только учитывайте тот факт, что с отключенным JS эта форма отправит результат совсем другой. Попробуйте отключить скрипт в браузере и отправить данные. Поэтому проверку лучше делать или на сервере средствами PHP или предусмотреть чтобы с отключенным JS форма скрывалась.


[Lichkin-rus]Topic starter

Цитата: Roffun от 05-02-2016, 22:47:32Поэтому проверку лучше делать или на сервере средствами PHP или предусмотреть чтобы с отключенным JS форма скрывалась.

Знать бы ещё как это делать, я не программер :) Надо наверное сказать клиенту, чтоб заказал форму у программера и не парил мне мозг)

Clever

#6
Цитата: [Lichkin-rus] от 05-02-2016, 23:14:06
Знать бы ещё как это делать, я не программер :) Надо наверное сказать клиенту, чтоб заказал форму у программера и не парил мне мозг)


Здесь ничего сложного нет, просто можно скрыть форму от тех у кого JS отключен, а остальным показать её, и всё. Вот вариант с проверкой, добавил несколько строк в код:


<!DOCTYPE html>
<html>
       
        <head>
                <meta charset="utf-8">
                <style>
                        #myform{display:none}
                </style>
        </head>
       
        <body>
<script>     
   function sendForm()
   {
      var sum = dоcument.getElementById('sum');
      sum.value = sum.value * 1.04;
      return true;
   }
</script>
                <div id="myform">
                        <form method="POST" action="#" onsubmit="sendForm()">
                                <input type="hidden" name="receiver" value="номер отправителя" />
                                <input type="hidden" name="formcomment" value="name1" />
                                <input type="hidden" name="short-dest" value="name2" />
                                <input type="hidden" name="label" value="$order_id" />
                                <input type="hidden" name="quickpay-form" value="donate" />
                                <input type="hidden" name="targets" value="транзакция {order_id}" />
                                <input type="text" name="sum" data-type="number" id="sum"/>
                                {тут вводится нужная сумма, которую надо умножить на 1.04}
                                <input type="hidden" name="comment" value="комментарий" />
                                <input type="hidden" name="need-fio" value="true" />
                                <input type="hidden" name="need-email" value="true" />
                                <input type="hidden" name="need-phone" value="false" />
                                <input type="hidden" name="need-address" value="false" />
                                <label>
                                        <input type="radio" name="paymentType" value="PC" />
                                        1
                                </label>
                                <label>
                                        <input type="radio" name="paymentType" value="AC" />
                                        2
                                </label>
                                <input type="submit" value="Клик" />
                        </form>
                </div>
                <script>
                        dоcument.getElementById("myform").style.display = "block";
                </script>
                <noscript>ВКЛЮЧИТЕ JS</noscript>
        </body>

</html>


Суть этого метода в том, что с помощью css присваивается блоку display:none, а с помощью js display:block, благодаря чему получается, что отправить форму можно только с включенным JS.

[Lichkin-rus]Topic starter




Если вам нравится SbUP Форум, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....