Преобразовать значение формы PHP при отправке - PullRequest
0 голосов
/ 28 марта 2019

Я настраиваю опцию пожертвования на веб-сайте, используя przelewy24.pl. У них есть этот шаблон запуска для отправки значений методом $ _GET на их веб-сайт.

Все отлично работает, кроме поля количества. Przelewy24 требуется сумма в граммах (например, в центах), и я бы хотел, чтобы донор набрал целое число в виде полного zł (например, $).

Если верхний не ясен - когда я набираю 100 в поле, он отправляет его przelewy24 как 100 гр, что будет 1 зл. Мне нужно знать, как я могу отформатировать отправленную им сумму, как при простом вычислении - когда набрано 100, get отправляет 10000. (x * 100)

Используемая форма показана ниже. Руководство по быстрому запуску доступно здесь , но только на польском

<form method="get" action="https://sklep.przelewy24.pl/zakup.php">
<input type="hidden" name="z24_id_sprzedawcy" value="TWOJ_ID">
<input type="hidden" name="z24_crc" value="KLUCZ_ZAKUPU">
<input type="hidden" name="z24_return_url" value="TWOJASTRONA.PL">
<input type="hidden" name="z24_language" value="pl">
<table>
<tr>
<td align="right">Nazwa produktu:</td> 
<td>
<input type="text" name="z24_nazwa" value="Opłata za rezerwację NR: 04/234/A3953">
</td>
</tr>
<tr>
<td align="right">Dodatkowy opis:</td>
<td>
<textarea name="z24_opis" style="width:250px">Dodatkowe informacje... 
</textarea>
</td>
</tr>
<tr>
<td align="right">Do zapłaty:</td>
<td><input type="text" name="z24_kwota"></td><!--KWOTA W GROSZACH-->
</tr>
</table>
<input type="submit" value="zapłać z przelewy24.pl">
</form>

Ответы [ 2 ]

1 голос
/ 28 марта 2019

Вы можете сделать это с помощью простого кода Javascript.Вам нужно захватить значение из ввода, преобразовать его и поместить значение в input hidden:

function formatMoney(e) {
	document.getElementById('z24_kwota').value = (!isNaN(e.target.value) ? e.target.value : 0) * 100

	// just to debug.. you can remove this line:
	document.getElementById('final_value').innerHTML = document.getElementById('z24_kwota').value
}
<form method="get" action="https://sklep.przelewy24.pl/zakup.php">
<input type="hidden" name="z24_id_sprzedawcy" value="TWOJ_ID">
<input type="hidden" name="z24_crc" value="KLUCZ_ZAKUPU">
<input type="hidden" name="z24_return_url" value="TWOJASTRONA.PL">
<input type="hidden" name="z24_language" value="pl">
<table>
<tr>
<td align="right">Nazwa produktu:</td> 
<td>
<input type="text" name="z24_nazwa" value="Opłata za rezerwację NR: 04/234/A3953">
</td>
</tr>
<tr>
<td align="right">Dodatkowy opis:</td>
<td>
<textarea name="z24_opis" style="width:250px">Dodatkowe informacje... 
</textarea>
</td>
</tr>
<tr>
<td align="right">Do zapłaty:</td>
<td>
	<input type="hidden" name="z24_kwota" id="z24_kwota">
	<input type="text" onkeyup="formatMoney(event)"></td><!--KWOTA W GROSZACH-->
</tr>
</table>
<input type="submit" value="zapłać z przelewy24.pl">
</form>

<!-- you can remove this line: -->
Final Value: <span id="final_value"></span>
0 голосов
/ 28 марта 2019

Попробуйте изменить значение перед отправкой формы, как показано ниже,

<form method="get" id="myform" action="https://sklep.przelewy24.pl/zakup.php">
<input type="hidden" name="z24_id_sprzedawcy" value="TWOJ_ID">
<input type="hidden" name="z24_crc" value="KLUCZ_ZAKUPU">
<input type="hidden" name="z24_return_url" value="TWOJASTRONA.PL">
<input type="hidden" name="z24_language" value="pl">
<table>
<tr>
<td align="right">Nazwa produktu:</td> 
<td>
<input type="text" name="z24_nazwa" value="Opłata za rezerwację NR: 04/234/A3953">
</td>
</tr>
<tr>
<td align="right">Dodatkowy opis:</td>
<td>
<textarea name="z24_opis" style="width:250px">Dodatkowe informacje... 
</textarea>
</td>
</tr>
<tr>
<td align="right">Do zapłaty:</td>
<td><input type="text" name="z24_kwota"></td><!--KWOTA W GROSZACH-->
</tr>
</table>
<input type="submit" value="zapłać z przelewy24.pl">
</form>
<script
  src="http://code.jquery.com/jquery-3.3.1.min.js"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  crossorigin="anonymous"></script>
<script type="text/javascript">
    var firstSubmit = false;
    $('#myform').on('submit',function(e){  
        if(!firstSubmit){     
            e.preventDefault();        
            firstSubmit = true;
            var amount = parseInt($('input[name=z24_kwota]').val());
            $('input[name=z24_kwota]').val(amount*100);
            $('#myform').trigger('submit');        
        }
    })
</script>

Примечание: я дал идентификатор для формы как myform

...