2011-05-13 15 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>'; 
} 
?> 

ステータス:あなたの助けを

ありがとう!

Jeff

+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

あなたが次のWebページを表示する前にインタラクティブな "100 Continue"アプローチを行っていない限り、JavaScriptでこれを行う必要があります。

ウェブページが最初に表示された後、このメッセージを表示すると、このメッセージが消えてからタグのonLoadアクションから呼び出されるスクリプトを追加します。そのdivの内容を空に設定します。

0

私はそれにAJAXを使用したいと思います。あなたは、データがDBにうまく挿入されていることを保証することができますし、必要なときに金額のjavascriptでメッセージを表示します。

0

出力をブラウザに送信する場合は、javascriptを使用して、テキストを表示する時間ウィンドウを制御できます。

jqueryのを使用している場合、あなたは(.hideを使用することができます)​​

0

あなただけのPHPでこれを達成することはできません。 JavaScriptが必要です。ここではjQueryを使用した簡単な例です:http://jsfiddle.net/4surX/

関連する問題