在提交表单之后但在重定向和退出之前回显成功消息

问题描述 投票:1回答:3

不知道我在这方面做了多长时间,但看起来没有任何效果。我想要做的就是在重定向和退出之前输出成功消息。

这是我检查数据库成功/失败的原因

$sql = ("INSERT INTO test3 (test1, betvalue, bookmaker, status, aktiv) VALUES ('$bettype', '$betvalue', '$bookmaker', '$status', '$aktiv')");

    $result = mysqli_query($conn, $sql);
    if(mysqli_affected_rows($conn) >0 ) {
      echo "Wow it works";                    <-- Not working
      header("Location: nybonus.php");
      exit;
    } else {
      echo ("<div class='alert alert-danger' role='alert'>" . $sql . "</div><div class='alert alert-danger' role='alert'>" . mysqli_error($conn) . "</div>");
    }

如果它成功,它不会输出任何回声,我已经尝试使用正确的刷新进行睡眠以尝试输出消息,但它根本不起作用。有没有更好的方法呢?也有人可以解释为什么它不会在标题和退出之前回显?

php sql forms mysqli echo
3个回答
1
投票

您可以通过设置会话变量并在重新加载时检查该变量的状态来实现您想要的效果:

$message = '';
if(isset($_SESSION['success'])) {
    if($_SESSION['success'] == 'success') {
        $message = 'Success';
    }
}

$sql = ("INSERT INTO test3 (test1, betvalue, bookmaker, status, aktiv) VALUES ('$bettype', '$betvalue', '$bookmaker', '$status', '$aktiv')");
mysqli_query($conn, $sql);
if(mysqli_affected_rows($conn) > 0) {
    $_SESSION['success'] = 'success';             
    header('Location: nybonus.php');
    exit;
}
else {
    $_SESSION['success'] = 'fail';
    ..... 
}

<script>
$("#message").fadeOut(2000, function() {
    $("#message").fadeIn(0, function() {
        document.getElementById("message").innerHTML ="<br>";

    });
});
</script>

<div id="message">
    <?php echo $message; ?>
</div>

2
投票

问题是当你使用“标题”时它必须是第一个。您无法在标题之前将任何其他内容打印到屏幕上。这与您设置cookie时的情况相同。

因此,在您的情况下,您无法使用“标题”进行重定向。您可以使用元刷新。

<meta http-equiv="refresh" content="0; url=http://www.somewebsite.com">

“内容”是刷新前等待的秒数。


0
投票

你必须更准确地解释你想要完成的事情......比如第1步执行此步骤2执行此操作,依此类推。以前我知道你曾经问过如何在回复消息后进行重定向。

所以现在解释一下你想要做的更多细节,也许我可以提供帮助。

如果您的意思是用户是一个“page1”并且他们提交了一个表单,然后在结果页面上显示该消息?然后重定向...

您只需要使表单操作与他们当前所在页面的URL路径相同。

你听懂了吗?

© www.soinside.com 2019 - 2024. All rights reserved.