此自动提交表单不起作用(有时!)

时间:2014-07-09 03:52:20

标签: javascript php html forms form-submit

这很奇怪。当我直接打开它时,这段代码运行良好 - 但是如果我运行之前的网页则没有。这段代码是一个确认页面,我想在结帐过程中跳转 - 我有我的所有字段,而且我不需要再次要求用户进行确认,所以我直接将她发送给结帐,发送所有的值字段。

同样,当我从另一个表单帖子到达此页面时它不起作用 - 尽管没有其他字段或对象被发送到此页面被称为表单 - 。有什么想法吗?

<?php include 'security.php' ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
<title>Secure Acceptance - Payment Form</title>
    <link rel="stylesheet" type="text/css" href="payment.css"/>
</head>

<body>

<?php
    foreach($_REQUEST as $name => $value) {
        $params[$name] = $value;
    }
?>
<p>Redirecting to Secure Server...</p>

<form action="https://testsecureacceptance.cybersource.com/pay" method="post" id="formulario" name="formulario" />

    <?php
        foreach($params as $name => $value) {
            echo "<input type=\"hidden\" id=\"" . $name . "\" name=\"" . $name . "\" value=\"" . $value . "\"/>\n";
        }

        echo "<input type=\"hidden\" id=\"signature\" name=\"signature\" value=\"" . sign($params) . "\"/>\n";
    ?>

<input type="submit" id="boton" name="boton" value="Ir a Checkout >>"/>

</form>

<script type = "text/javascript">
    document.getElementById('formulario').submit();
</script>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

您可以使用JavaScript setTimeout方法在页面加载时延迟提交功能,或者您也可以使用jQuery等待文档加载,之后您可以触发表单提交功能: JS:

setTimeout(function(){
 document.getElementById('formulario').submit();
},1000);

jQuery的:

$(document).ready(function(){
  $('#formulario').submit();
})