如何在PHP上重定向后显示警告框

时间:2017-08-23 18:45:15

标签: php html forms redirect

嗯,标题非常明显。我在index.html上有一个表单。

这个PHP代码将POST形成一个外部URL,然后再次重定向到索引:

<?php

Echo "<style>body{background:#3e4744}</style>";
Echo "<style>h2{display:none}</style>";

//extract data from the post
//set POST variables
$url = 'https://blablabla.com';
$fields = array(
    'email' => urlencode($_POST['email'])
);

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

if (isset($_POST['submit'])){   
    ?>
    <script type="text/javascript">
        window.location = "/";
    </script>      
    <?php
}

?>

所以,事情就是这样。如何在页面重定向后立即显示一个警告框:“您的帖子已成功发送”?

1 个答案:

答案 0 :(得分:0)

由于index.html未在服务器上处理,因此您必须使用一些客户端逻辑将数据从一个页面传输到另一个页面。您可以使用会话存储,本地存储,cookie或仅使用URL。

一种简单的方法是在url哈希中传递一个指标。为此,您可以像这样修改window.location

window.location = "/#success";

并在index.html内部进行测试,如果url哈希值等于#success

<script>
    if (window.location.hash == '#success') {
        alert('Success message..!');
    }
</script>