如何通过单击按钮调用带有参数的php文件?

时间:2017-05-09 22:41:13

标签: php html

我在一个名为send_payment.php的文件中有以下代码。它将一些参数发送到银行支付页面,我假设某个表单已在某处提交。

<head>
    <script type="text/javascript">
        function onLoad()
        {
            document.frmInput.submit();
        }   
    </script>
</head>

<body onLoad="onLoad();">
<form name="frmInput" id="frmInput" 
action="https://tmbepgw.tmbbank.com/TMBPayment/Payment.aspx" method="post">
    <input type="hidden" id=MERID name=MERID value="000001110801149">
    <input type="hidden" id=TERMINALID name=TERMINALID value="78000113">
    <input type="hidden" id=AMOUNT name=amount value="000000000000">
    <input type="hidden" id=BACKENDURL name=BackendUrl value="">
    <input type="hidden" id=RESPONSEURL name=ResponseUrl value="http://www.nibh.com/html">
    <input type="hidden" id=MERCHANTDATA name=merchantdata value="NIBH">
    <input type="hidden" id=INVOICENO name=INVOICENO value="090517153914">
    <input type="hidden" id=CURRENCYCODE name=CURRENCYCODE value="764">
    <input type="hidden" id=VERSION name=VERSION value="1.0">
</form>
</body>
</html>

我在我的网站上提交了表单提交的代码,其中包含点击按钮时的href:

<a class="button" href="#">Make Payment</a>

在该代码中,我可以访问表单中的字段,例如$ AMOUNT等... for send_payment.php。

但是,我被卡住了。我想在用户点击提交时进行与.php文件相同的调用。

  1. 单击我的按钮时,如何调用send_payment.php文件中的相同代码?
  2. 我只想在&#39; action&#39;中发送相同的变量。 send_payment页面
  3. 最好是调用一个php文件来执行此操作 - 如果有的话,任何有关如何将参数发送到php文件然后调用该URL的指南:

    &#34; https://tmbepgw.tmbbank.com/TMBPayment/Payment.aspx&#34;方法=&#34;后&#34;

  4. 我当时拥有的变量? (例如$ amount等......)

    感谢。

1 个答案:

答案 0 :(得分:0)

仅使用PHP,将POST发送到TWO文件,您需要使用CURL。 这样做:

1)在action中设置form tag属性,指向PHP文件(send_payment.php

2)在文件send_payment.php中,您需要使用CURL将$ _POST变量发送到.aspx文件,如下所示:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://tmbepgw.tmbbank.com/TMBPayment/Payment.aspx");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close($ch);

if ( $server_output ){
    // true
} else {
    //false
}

这是使用CURL发送POST的最简单方法。大多数主机服务器都启用了CURL。但请检查您的主机是否真的启用。也许主机有一个在服务器中使用CURL的示例。但是CURL没有任何谜团。

您可以将此代码放在一个函数中,如:

function send_payment_curl( $post, $to_url ){
     $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$to_url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $server_output = curl_exec($ch);
    curl_close($ch);

    if ( $server_output ){
        return true;
    } else {
        return false;
    }
}

在您的文件send_payment.php中,只需调用函数:

$r = send_payment_curl( $_POST, "https://tmbepgw.tmbbank.com/TMBPayment/Payment.aspx" );

if ( $r ){
    // it works!
} else {
    // there's a problem with the CURL. Please check the code
}

我希望它可以帮到你!