在提交之前设置PHP值

时间:2011-12-20 22:09:55

标签: php javascript ajax forms hook

我正在尝试集成使用设定金额的交易表单。对于这个项目,我真的需要使交易金额灵活 - 可由用户编辑。这是我需要调整的代码(我将其修剪一下以显示关键部分)

<?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钩子,但不清楚如何编码?或者有更优雅的方式?

3 个答案:

答案 0 :(得分:2)

您需要一个脚本发布到另一个设置$ 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是否打算以这种方式使用,并且可能有更好的解决方案。

答案 1 :(得分:0)

您至少需要一个文本文件。可以使用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>

答案 2 :(得分:0)

我已经完成了这个并且在声明变量并在页面加载后立即给它一个值之后我就可以在我需要的任何其他地方使用该值。

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

这应该有用..