提交时转换 PHP 表单的值

Transform value of PHP form on submit

我正在使用 przelewy24.pl 在网站上设置捐赠选项。他们有这个启动模板,可以通过 $_GET 方法将值发送到他们的网站。

除金额字段外,一切正常。 Przelewy24 需要 gr 金额(如美分),我希望捐助者输入完整的 zł 整数(如 $)。

如果上面不清楚 - 当我在字段中键入 100 时,它会将其作为 100 克发送到 przelewy24,这将是 1 兹罗提。 我需要知道如何将发送给他们的金额格式化为简单计算 - 当输入 100 时,get 发送 10000。(x*100)

使用的表格如下所示。快速入门指南可用 here,但只有波兰语

<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>

您可以使用简单的 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>

尝试在提交如下表单之前更改值,

<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>

注意:我已将表单的 ID 指定为 myform