PHP:指定时间内的回显消息

时间:2011-05-13 07:55:16

标签: php echo timed

我想显示一个字符串“你的状态已被发布”,大约3秒左右的时间比我希望它消失。

截至目前,我有一个新闻Feed,用户可以在其中发布消息,在发布消息之后回显该文本字符串,直到网址被重新发送。有没有人有任何建议?

if ($_POST['submit'])
{
$body = $_POST['body'];

if ($body)
{
    include ('connect.php');
    $date = date("Y-m-d");
    $email = $_SESSION['email'];
    $who = mysql_query("SELECT firstname FROM people WHERE email = $email");
    $insert = mysql_query("
    INSERT INTO status VALUES('','$email','$body','$date')");
    echo ('Your status has been posted <p></p>');
}
else
    echo 'Status required to post into news feed! <p></p>';
 }
 ?>

状态:

感谢您的帮助!

杰夫

6 个答案:

答案 0 :(得分:3)

您需要添加一些JavaScript才能执行此操作。这是一个帮助您入门的大纲:

<p id="info-message">Your status has been posted</p>
<script>
  setTimeout(function(){
    document.getElementById('info-message').style.display = 'none';
    /* or
    var item = document.getElementById('info-message')
    item.parentNode.removeChild(item); 
    */
  }, 3000);
</script>

你也可能想要淡出效果。为此,我建议使用像jQuery或Scriptaculous这样的库。

有用的链接:
https://developer.mozilla.org/en/Window.setTimeout
http://api.jquery.com/fadeOut/
http://script.aculo.us/


哦,顺便说一句,您的脚本容易受到SQL injection始终escape您的查询参数(或使用准备好的查询)!

答案 1 :(得分:0)

你不能用php做到这一点。请尝试使用Javascript。

答案 2 :(得分:0)

除非您在呈现下一个网页之前进行交错的“100继续”方法,否则您需要在javascript中执行此操作。

如果我在他们第一次看到网页后显示一段时间,那么你可以有类似的东西。这条消息将消失,然后添加一个从你的标签的onLoad动作调用的脚本,这将(例如)睡三秒钟然后将该div的内容设置为空。

答案 3 :(得分:0)

我会使用AJAX。您可以向自己保证,数据已经很好地插入到数据库中,然后使用javascript显示消息,以获得您想要的时间。

答案 4 :(得分:0)

如果将输出发送到浏览器,则可以使用javascript控制希望文本可见的时间窗口。

如果使用jquery,您可以使用.hide()http://api.jquery.com/hide/

答案 5 :(得分:0)

仅使用PHP无法实现此目的;你需要JavaScript。这是一个使用jQuery的简单示例:http://jsfiddle.net/4surX/