Уважаемые программисты, помогите пожалуйста перед отправкой "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".
Можно так:
<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>
Цитата: 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>
Спасибо! работает :)
Цитата: [Lichkin-rus] от 05-02-2016, 15:51:26
Спасибо! работает :)
Только учитывайте тот факт, что с отключенным JS эта форма отправит результат совсем другой. Попробуйте отключить скрипт в браузере и отправить данные. Поэтому проверку лучше делать или на сервере средствами PHP или предусмотреть чтобы с отключенным JS форма скрывалась.
Цитата: Roffun от 05-02-2016, 22:47:32Поэтому проверку лучше делать или на сервере средствами PHP или предусмотреть чтобы с отключенным JS форма скрывалась.
Знать бы ещё как это делать, я не программер :) Надо наверное сказать клиенту, чтоб заказал форму у программера и не парил мне мозг)
Цитата: [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.
Отлично :)