1

「ステータスが投稿されました」という文字列を約3秒ほど表示したいのですが、消えたくありません。

現在、ユーザーがメッセージを投稿できるニュースフィードがあり、投稿後、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>';
 }
 ?>

状態 :

ご協力いただきありがとうございます!

ジェフ

4

6 に答える 6

4

これを行うには、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インジェクションに対して脆弱です。常にクエリパラメータをエスケープします(または準備されたクエリを使用します)!

于 2011-05-13T07:59:46.713 に答える
0

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

于 2011-05-13T08:05:45.027 に答える
0

phpではできません。代わりに Javascript を試してください。

于 2011-05-13T07:59:48.900 に答える
0

次の Web ページを表示する前に、奇妙な "100 Continue" アプローチをインターリーブしない限り、JavaScript でこれを行う必要があります。

これを最初にウェブページを表示した後、一定期間表示する場合は、次のようなものを作成できます。このメッセージは消えてから、タグの onLoad アクションから呼び出されるスクリプトを追加します。このスクリプトは、(たとえば) 3 秒間スリープしてから設定します。その div の内容を空にする。

于 2011-05-13T07:59:51.390 に答える
0

そのためにAJAXを使用します。データが DB に適切に挿入されたことを確認してから、必要な時間だけ JavaScript でメッセージを表示できます。

于 2011-05-13T07:59:58.057 に答える
0

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

jquery を使用している場合は、.hide() http://api.jquery.com/hide/を使用できます。

于 2011-05-13T08:01:14.113 に答える