2011-05-13 50 views
1

我想顯示一個字符串「您的狀態已發佈」,比我想要消失的時間大約3秒左右。PHP:在指定的時間內回覆消息

截至目前,我有一個新聞源,用戶可以發佈消息,並在發佈消息後迴應該文本字符串,直到url被重新發送。有沒有人有什麼建議?

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>'; 
} 
?> 

狀態:

感謝您的幫助!

傑夫

+0

狀態:
<形式行動= 「member.php」 方法= 「POST」> Jeffrey

+0

您試過JavaScript了吧? –

+0

請編輯你的問題來更新它,而不是添加評論。這種方式更具可讀性。 – mingos

回答

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您的查詢參數(或使用準備好的查詢)!

+0

@elvenbyte我不明白你的問題。 –

0

你不能用php做到這一點。改用Javascript。

0

除非你在呈現你的下一個網頁之前交錯一些奇怪的「100繼續」方法,否則你需要在javascript中執行此操作。

如果我在他們第一次看到網頁後顯示一段時間,那麼你可以有類似的東西這個消息將消失,然後添加一個腳本,這是從你的標籤的onLoad動作調用,這將(例如)睡三秒,然後將該div的內容設置爲空。

0

我會爲此使用AJAX。您可以向自己保證,數據已經很好地插入到數據庫中,然後使用JavaScript顯示消息的時間量。

0

如果發送輸出到瀏覽器,那麼你可以使用javascript來控制你希望你的文本可見的時間窗口。

如果使用jQuery你可以使用.hide()​​

相關問題