提交前设置PHP值

set PHP value before submit

本文关键字:PHP 设置 提交      更新时间:2023-09-26

我正试图整合使用设定金额的交易形式。对于这个项目,我真的需要使交易金额灵活-由用户编辑。下面是我需要调整的代码(为了显示关键部分,我稍微调整了一下)

<?php
require_once 'anet_php_sdk/AuthorizeNet.php';
$amount = "5.99";
?>
<form method='post' action="https://secure.authorize.net/gateway/transact.dll">
<input type='hidden' name="x_amount" value="<?php echo $amount?>" />
<input type='submit' value="Click here for the secure payment form">
</form>

我基本上想让"x_amount"变量成为文本输入而不是隐藏;我需要的代码将在PHP中编辑$amount,以匹配用户键入表单输入字段,然后正常提交表单…

我认为这可能是可能的ajax/JS onbeforesubmit钩子,但不清楚如何编码?或者有更优雅的方式?

您需要一个脚本发送到另一个脚本设置$amount的值。

setamount.php

<form method='post' action="confirm.php">
<input type='text' name="amount" value="" />
<input type='submit' value="Click here for the secure payment form">
</form>

confirm.php

<?php
require_once 'anet_php_sdk/AuthorizeNet.php';
$amount = $_POST['amount'];
?>

<form method='post' action="https://secure.authorize.net/gateway/transact.dll">
<input type='hidden' name="x_amount" value="<?php echo $_POST['amount']; ?>" />
<input type='submit' value="Click here for the secure payment form">
</form>

这似乎解决了您已经确定的问题,但我不确定您正在使用的API是否打算以这种方式使用,可能有更好的解决方案。

您至少需要一个文本文件。JS文件可以使用

// js file
var amount = "5.99";
window.onload=function() {
  document.forms[0].x_amount.value=amount; // assuming first form on page
}

<script src='amount.js"></script>
<form method='post' action="https://secure.authorize.net/gateway/transact.dll">
<input type='hidden' name="x_amount" value="" />
<input type='submit' value="Click here for the secure payment form">
</form>

我已经这样做了,在声明一个变量并在页面加载后立即给它一个值,然后我可以在任何我需要的地方使用该值。

<?php
   //use some sort of escape for security reasons but thats another issue aside..
   $amount = mysql_escape_string($_POST['amount']);
?>
<html>
<head>
</head>
<body>
 <form action="" method="post">
  <input type="text" value="<?php $amount ?>"/>
 </form>
</body>
</html>