Javascript/PHP 自动提交保持提交表单


Javascript/PHP auto submit keeps submitting form

此代码:

<?php
    if(isset($_GET['submit']))
    {
    ?>
    <head>
    <script type="text/javascript">
        document.getElementById('up').submit(); // SUBMIT FORM
    </script>
    </head>
<?php
    }
?>

形式:

<form name="up" id="up" action="" method="post">
<textarea name="text" rows="40" cols="100"></textarea>
<input type="submit" name="ingameban" value="Save in-game banlist (Upload to server and make new bans take effect)" style="height: 64px; width: 550px;" />
</form>

一直循环,结果与粉碎重新加载按钮相同。当网址显示 ?submit=submit 时,它必须提交表单

如何解决这个问题?

谢谢

您的方法是正确的,但问题是 URL 中的submit=submit被复制到用于提交表单的新 URL。因为在您的表格中,您有:

<form name="up" id="up" action="" method="post">

由于操作为空,因此使用完全相同的 URL,因此submit=submit保留在 URL 中。相反,请提供正确的 URL。然后submit=submit将不会复制到新 URL:

<form name="up" id="up" action="/my-url" method="post">

如何设置一个输入隐藏字段,您在提交时将其标记为 true。

在再次提交之前,请检查此字段。

试试这个:

<?php
    if(isset($_GET['submit']))
    {
        if(isset($_GET['submitted']) && $_GET['submitted'] == 'false') {
    ?>
    <head>
    <script type="text/javascript">
        document.getElementById('submitted').value = 'true';
        document.getElementById('up').submit(); // SUBMIT FORM
    </script>
    </head>
        }
<?php
    }
?>
<body>
<form method="get" id="up">
<input type="hidden" id="submitted" name="submitted" value="false" />
...
</form>