【问题标题】:How do I resend a post request that has already been processed in php?如何重新发送已经在 php 中处理的 post 请求?
【发布时间】:2019-11-25 01:28:17
【问题描述】:

我看到很多问题,人们试图阻止重新发送 POST 请求,但我想要相反。我想要一个重试按钮来重新发送已经发送的 POST 数据。

在 Chrome 中,当我手动刷新页面时,当我在警告中选择“确定”时,会重新发送 POST 请求。但是,当我尝试通过制作一个刷新页面的按钮来复制它时,它会在没有原始 POST 数据的情况下这样做。

编辑:忘了说我为什么要这样做。

我想这样做的原因是因为这是一个随机选择生成器。您在索引页面上输入一个选项列表,然后在您提交表单时在 process.php 页面上以粗体显示一个随机选项。但是,我认为没有必要将这些信息存储在 SQL 或任何东西中,我只希望有一个简单的“重试”按钮,以便他们可以再次尝试,以防他们不喜欢结果。

这是 php:

<?php

    $name = $_POST["titleChoice"];

    if (sizeof($_POST["choice"]) != 0){
        $randomNumber = rand(1, sizeof($_POST["choice"])); 

        echo "<b>" . $name . "</b><br><br>";

        for ($i = 1; $i <= sizeof($_POST["choice"]); $i++) {
            if ($randomNumber == $i){
                echo  "<b>" . $i . ". " . $_POST["choice"][$i-1] . "</b><br>";
            } 
            else{       
                echo  $i . ". " . $_POST["choice"][$i-1] . "<br>";
            }
        }   
    }
    else{
        echo "No choices were inputted! Would you like to try again?";
    }

?>

这里是重试按钮:

<form action="process.php" method="post">
    <button name="submit" class="btn-lg" onclick="reloadPage();"> Retry </button>
</form>

 <script type="text/javascript">
    function reloadPage()
    {
        window.location.reload();
    }
 </script>

我是 PHP 新手,如果有任何帮助,将不胜感激,谢谢!

【问题讨论】:

  • 为什么要多次提交帖子数据。告诉我实际情况,如果有更好的建议,我会提出建议
  • 已修复,对此感到抱歉。
  • 很高兴听到它的好

标签: javascript php web post button


【解决方案1】:

没关系,我意识到我犯了一个愚蠢的错误。

我最初的按钮是这样的:

<form action="process.php" method="post">
    <button name="submit" class="btn-lg" onclick="reloadPage();"> Retry </button>
</form>

但它应该只是一个按钮:

<button name="submit" class="btn-lg" onclick="reloadPage();"> Retry </button>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 2016-04-08
    • 2021-02-10
    相关资源
    最近更新 更多