一旦PHP变量被设置,如何自动发送表单?

时间:2014-07-24 09:50:30

标签: php forms

自动发送此表单的最佳方法是什么?我有一个上面的表单,用于设置此中所需的$amount。由于此表单不需要用户输入(除了当前正在按提交),我希望在$ amount设置后立即发送表单,以便用户只需按一个按钮进行设置,然后立即重定向到此表单。

感谢您的帮助!

更新(基于 sanki '答案) 我想这是接近工作但我没有在第一个提供足够的信息。

<head>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
 $('#sub').click(function(){
 if( $("#amt").val() ) {
      $("#subbut").trigger("click");
 }
 });
</script>
</head>

以下是设置$price * 100 = $amount

的表单
<form name="priceselect" id="priceselect" method="post">
  <select name="price" id="mySelect" onchange="document.getElementById('selectedValue').innerHTML = this.value;">
    <option value="100">Option 1</option>
    <option value="120">Option 2</option>
    <option value="115">Option 3</option>
    <option value="135">Option 4</option>
    <option value="80" >Option 5</option>
  </select>
  <input value="Continue" type="Submit" id=sub />
</form>

要自动提交的表单的详细信息是(添加回显来检查$ price是否正在发布):

<?php
$price = $_POST['price'];
if (isset($_POST['price'])) {
        echo "£";
        echo $price;
}

$merchantid = "XXXXXX";
$secret = "XXXXXX";

$timestamp = strftime("%Y%m%d%H%M%S");
mt_srand((double)microtime()*1000000);

$orderid = $timestamp."-".mt_rand(1, 999);
$curr = "GBP";
$amount = $price * 100;

$tmp = "$timestamp.$merchantid.$orderid.$amount.$curr";
$md5hash = md5($tmp);
$tmp = "$md5hash.$secret";
$md5hash = md5($tmp);
?>

然后基于$amount / $price的自动提交表单为:

<form id="globaliris" action="https://redirect.globaliris.com/epage.cgi" method="post" class="select">

<input type=hidden name="MERCHANT_ID" value="<?=$merchantid?>">
<input type=hidden name="ORDER_ID" value="<?=$orderid?>">
<input type=hidden name="CURRENCY" value="<?=$curr?>">
<input type=hidden name="AMOUNT" id="amt" value="<?=$amount?>">
<input type=hidden name="TIMESTAMP" value="<?=$timestamp?>">
<input type=hidden name="MD5HASH" value="<?=$md5hash?>">
<input type=hidden name="AUTO_SETTLE_FLAG" value="1">
<br />
<br />
 <input style="visibility:hidden" value="Continue" id="subbut" type="Submit" />
</form>

(这都在同一页面上)

1 个答案:

答案 0 :(得分:1)

我在&#34; AMOUNT&#34;中添加了一个ID输入类型和ID =&#34; sub&#34;到第一个提交按钮。

<input value="Continue" type="Submit" id="sub" />


<input type="hidden" name="AMOUNT" id="amt" value="<?=$amount?>">

然后尝试这个jQuery代码:

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
 $(document).ready(function() { 
   if( $("#amt").val() > 0) {
     $("#subbut").trigger("click");
    }
 });
</script>